Оператор where

Отфильтровывает таблицу для подмножества строк, которые удовлетворяют предикату.

Операторы where и filter эквивалентны

Синтаксис

T| whereПредикат

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

Параметры

Имя Тип Обязательно Описание
T string ✔️ Табличные входные данные, записи которых необходимо отфильтровать.
Предикат string ✔️ Выражение, результатом которого является логическое значение для каждой строки в T.

Возвращаемое значение

Строки из таблицы T, для которых Predicate имеет значение true.

Примечание

Все функции фильтрации возвращают значение false при сравнении со значениями NULL. Используйте специальные функции, поддерживающие значение NULL, для написания запросов, обрабатывающих значения NULL.

Советы по улучшению производительности

  • Используйте простые сравнения между именами столбцов и константами. (Под константой здесь понимается значение, постоянное для всех строк таблицы. Соответственно, допустимо использовать функции now() и ago(), а также скалярные значения, назначенные с помощью оператора let.)

    Например, лучше использовать where Timestamp >= ago(1d), чем where bin(Timestamp, 1d) == ago(1d).

  • Вводите сначала более простые элементы. Если у вас есть несколько предложений, объединенных с помощью and, то сначала вводите предложения, которые включают только один столбец. Пример правильного порядка предложений: Timestamp > ago(1d) and OpId == EventId.

Дополнительные сведения см. в сводке доступных строковых операторов и в сводке доступных числовых операторов.

Примеры

Сравнение заказов по сложности

Следующий запрос возвращает записи шторма, которые сообщают о поврежденном свойстве, являются наводнениями, а также начинаются и заканчиваются в разных местах.

Обратите внимание, что мы ставим сравнение двух столбцов последним, так как оператор where не может использовать индекс и принудительно выполняет проверку.

StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
    and EventType == "Flood"
    and BeginLocation != EndLocation 

В следующей таблице показаны только первые 10 результатов. Чтобы просмотреть полные выходные данные, выполните запрос.

DamageProperty EventType BeginLocation EndLocation
5000 Наводнение ФАЙЕТТ СИТИ ЛОУБЕР
5000 Наводнение МОРРИСВИЛЛ ЗАПАДНЫЙ УЭЙНЕСБЕРГ
10000 Наводнение КОУПЛЕНД ХАРРИС ГРОУВ
5000 Наводнение ГЛЕНФОРД МАУНТ ПЕРРИ
25000 Наводнение ВОСТОЧНАЯ СЕНЕКА БУФФАЛО AIRPARK ARPT
20 000 Наводнение EBENEZER SLOAN
10000 Наводнение БУЭЛЬ КАЛХУН
10000 Наводнение ГУДХОП УЭСТ МИЛФОРД
5000 Наводнение ЛЕС ДЮНКЕРКА
20 000 Наводнение ФАРМИНГТОН МАННИНГТОН

Проверьте, содержит ли столбец строку

Следующий запрос возвращает строки, в которых слово cow отображается в любом столбце.

StormEvents
| where * has "cow"