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


Оператор where

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

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

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

Синтаксис

T | whereпредикат

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

Параметры

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

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

Примеры

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

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

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

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

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

DamageProperty EventType BeginLocation EndLocation
5000 Наводнение FAYETTE CITY LOWBER
5000 Наводнение МОРРИСВИЛЛ УЭСТ УЭЙНСБУРГ
10000 Наводнение КОУПЛЕНД ХАРРИС РОУВ
5000 Наводнение ГЛЕНФОРД MT ПЕРРИ
25 000 Наводнение EAST SENECA BUFFALO AIRPARK ARPT
20000 Наводнение EBENEZER SLOAN
10000 Наводнение BUEL CALHOUN
10000 Наводнение ГУДХОП УЭСТ МИЛФОРД
5000 Наводнение ЛЕС DUNKIRK
20000 Наводнение ФАРМИНГТОН МАННИНГТОН

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

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

StormEvents
| where * has "cow"