in - оператор

Фильтрует набор записей для данных со строкой с учетом регистра.

В следующей таблице приведено сравнение операторов in :

Оператор Описание С учетом регистра Пример (при true)
in Соответствует одному из элементов Да "abc" in ("123", "345", "abc")
!in Не соответствует одному из элементов Да "bca" !in ("123", "345", "abc")
in~ Равно любому из элементов Нет "Abc" in~ ("123", "345", "abc")
!in~ Не соответствует одному из элементов Нет "bCa" !in~ ("123", "345", "ABC")

Примечание

Вложенные массивы сведены в один список значений. Например, x in (dynamic([1,[2,3]])) преобразуется в x in (1,2,3).

Дополнительные сведения о других операторах и сведения о том, какой оператор лучше всего подходит для запроса, см. в разделе Строковые операторы типа данных.

Операторы, работающие без учета регистра, сейчас поддерживают только текст ASCII. Для сравнения работы со схемами, отличными от ASCII, используйте функцию tolower().

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

Примечание

Производительность зависит от типа поиска и структуры данных. Рекомендации см. в статье Рекомендации по запросам.

Синтаксис

T|whereColin(Выражение, ... )

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

Параметры

Имя Тип Обязательно Описание
T string ✔️ Табличные входные данные для фильтрации.
col string ✔️ Столбец, по которому выполняется фильтрация.
expression скалярный или табличный ✔️ Выражение, указывающее значения, по которым выполняется поиск. значения, по которым выполняется поиск. Каждое выражение может быть скалярным или табличным выражением , которое создает набор значений. Если табличное выражение содержит несколько столбцов, используется первый столбец. Поиск будет учитывать до 1 000 000 уникальных значений.

Примечание

Встроенное табличное выражение должно быть заключено в двойные скобки. См. пример.

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

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

Примеры

Список скаляров

В следующем запросе показано, как использовать in со списком скалярных значений.

StormEvents 
| where State in ("FLORIDA", "GEORGIA", "NEW YORK") 
| count

Выходные данные

Счетчик
4775

Динамический массив

В следующем запросе показано, как использовать in с динамическим массивом.

let states = dynamic(['FLORIDA', 'ATLANTIC SOUTH', 'GEORGIA']);
StormEvents 
| where State in (states)
| count

Выходные данные

Счетчик
3218

Табличное выражение

В следующем запросе показано, как использовать in табличное выражение.

let Top_5_States = 
    StormEvents
    | summarize count() by State
    | top 5 by count_; 
StormEvents 
| where State in (Top_5_States) 
| count

Тот же запрос можно написать с помощью встроенного табличного выражения.

StormEvents 
| where State in (
    StormEvents
    | summarize count() by State
    | top 5 by count_
    ) 
| count

Выходные данные

Счетчик
14242

Основной с другим примером

let Lightning_By_State = materialize(StormEvents
    | summarize lightning_events = countif(EventType == 'Lightning') by State);
let Top_5_States = Lightning_By_State | top 5 by lightning_events | project State; 
Lightning_By_State
| extend State = iff(State in (Top_5_States), State, "Other")
| summarize sum(lightning_events) by State 

Выходные данные

Состояние sum_lightning_events
АЛАБАМА 29
ВИСКОНСИН 31
Техас 55
Флорида 85
Грузия 106
Другие 415

Использование статического списка, возвращенного функцией

StormEvents 
| where State in (InterestingStates()) 
| count

Выходные данные

Счетчик
4775

Определение функции.

.show function InterestingStates

Выходные данные

Название Параметры Текст Папка DocString
InterestingStates () { dynamic(["ВАШИНГТОН", "ФЛОРИДА", "ДЖОРДЖИЯ", "НЬЮ-ЙОРК"]) }