Оператор as

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

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

Синтаксис

T|as [hint.materialized=Materialized] Name

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

Параметры

Имя Тип Обязательно Описание
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