Поделиться через


Оператор as

Привязывает имя к входному табличному выражению оператора. Это позволяет запросу ссылаться на значение табличного выражения несколько раз, не нарушая запрос и привязывая имя с помощью инструкции let.

Чтобы оптимизировать использование as оператора в одном запросе, см. раздел Именованные выражения.

Синтаксис

T as | [hint.materialized = Материализовано] Имя

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
T string ✔️ Табличное выражение для переименования.
Имя string ✔️ Временное имя табличного выражения.
hint.materialized bool Если параметр Materialized имеет значениеtrue, значение табличного выражения будет таким, как если бы оно было завернуто вызовом функции materialize(). В противном случае значение будет пересчитываться по каждой ссылке.

Примечание.

  • Имя, заданное as withsource= в столбце объединения, source_ столбце поиска и $table столбце поиска.
  • Табличное выражение с именем, использующее оператор в внешних табличных входных данных объединения ($left), может также использоваться в табличных внутренних входных данных объединения ($right).

Примеры

В следующих двух примерах созданный столбец TableName объединения будет состоять из T1 и T2.

range x from 1 to 10 step 1 
| as T1 
| union withsource=TableName (range x from 1 to 10 step 1 | as T2)

Кроме того, можно написать тот же пример, как показано ниже.

union withsource=TableName (range x from 1 to 10 step 1 | as T1), (range x from 1 to 10 step 1 | as T2)

В следующем примере "левая сторона" соединения будет MyLogTable : отфильтрованы type == "Event" и Name == "Start" "справа" соединения будут: MyLogTable отфильтрованы type == "Event" по и Name == "Stop"

MyLogTable  
| where type == "Event"
| as T
| where Name == "Start"
| join (
    T
    | where Name == "Stop"
) on ActivityId