Оператор 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().

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

Примечание

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

По возможности используйте in с учетом регистра.

Синтаксис

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

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

Параметры

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

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

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

Примеры

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

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

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

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

Счетчик
4775

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

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

StormEvents 
| where State in~ (dynamic(["FLORIDA", "georgia", "NEW YORK"])) 
| count

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

Счетчик
4775

Тот же запрос также можно написать с помощью оператора let.

let states = dynamic(["FLORIDA", "georgia", "NEW YORK"]);
StormEvents 
| where State has_any (states)
| summarize count() by State

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

Счетчик
4775

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

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

StormEvents 
| where State in~ (PopulationData | where Population > 5000000 | project State)
| summarize count() by State

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

Состояние count_
Техас 4701
Иллинойс 2022
Миссури 2016
Грузия 1983
МИННЕСОТА 1881
... ...

Тот же запрос также можно написать с помощью оператора let. Обратите внимание, что двойные круглые скобки, как указано в последнем примере, в этом случае не нужны.

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State in~ (large_states)
| summarize count() by State

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

Состояние count_
Техас 4701
Иллинойс 2022
Миссури 2016
Грузия 1983
МИННЕСОТА 1881
... ...