Оператор has_any
Фильтрует набор записей по данным с любым набором строк без учета регистра. has_any
выполняет поиск индексированных терминов, где индексированные термины являются тремя или более символами. Если ваш термин содержит менее трех символов, запрос сканирует значения в столбце, что происходит медленнее, чем поиск термина в индексе термина.
Дополнительные сведения о других операторах и определении того, какой оператор лучше всего подходит для запроса, см. в разделе Строковые операторы типа данных.
Синтаксис
T|
where
Colhas_any
(
Выражение,
... )
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
T | string |
✔️ | Табличные входные данные для фильтрации. |
col | string |
✔️ | Столбец, по которому выполняется фильтрация. |
expression | скалярный или табличный | ✔️ | Выражение, указывающее значения, по которым выполняется поиск. Каждое выражение может быть скалярным или табличным выражением , которое создает набор значений. Если табличное выражение содержит несколько столбцов, используется первый столбец. Поиск будет учитывать до 10 000 уникальных значений. |
Примечание
Встроенное табличное выражение должно быть заключено в двойные круглые скобки. См. пример.
Возвращаемое значение
Строки в T, для которых предикат имеет значение true
.
Примеры
Список скалярных элементов
В следующем запросе показано, как использовать has_any
с разделенным запятыми списком скалярных значений.
StormEvents
| where State has_any ("CAROLINA", "DAKOTA", "NEW")
| summarize count() by State
Выходные данные
Состояние | count_ |
---|---|
НЬЮ-ЙОРК | 1750 |
СЕВЕРНАЯ КАРОЛИНА | 1721 |
ЮЖНАЯ ДАКОТА | 1567 |
НЬЮ-ДЖЕРСИ | 1044 |
ЮЖНАЯ КАРОЛИНА | 915 |
СЕВЕРНАЯ ДАКОТА | 905 |
НЬЮ-МЕКСИКО | 527 |
НЬЮ-ГЭМПШИР | 394 |
Динамический массив
В следующем запросе показано, как использовать has_any
динамический массив.
StormEvents
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State
Выходные данные
Состояние | count_ |
---|---|
СЕВЕРНАЯ КАРОЛИНА | 1721 |
ЮЖНАЯ ДАКОТА | 1567 |
ЮЖНАЯ КАРОЛИНА | 915 |
СЕВЕРНАЯ ДАКОТА | 905 |
ЮЖНО-АТЛАНТИЧЕСКИЕ ШТАТЫ | 193 |
АТЛАНТИЧЕСКИЙ СЕВЕР | 188 |
Тот же запрос также можно написать с помощью оператора let.
let areas = dynamic(['south', 'north']);
StormEvents
| where State has_any (areas)
| summarize count() by State
Выходные данные
Состояние | count_ |
---|---|
СЕВЕРНАЯ КАРОЛИНА | 1721 |
ЮЖНАЯ ДАКОТА | 1567 |
ЮЖНАЯ КАРОЛИНА | 915 |
СЕВЕРНАЯ ДАКОТА | 905 |
ЮЖНО-АТЛАНТИЧЕСКИЕ ШТАТЫ | 193 |
АТЛАНТИЧЕСКИЙ СЕВЕР | 188 |
Табличное выражение
В следующем запросе показано, как использовать has_any
со встроенным табличным выражением. Обратите внимание, что встроенное табличное выражение должно быть заключено в двойные круглые скобки.
StormEvents
| where State has_any ((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 has_any (large_states)
| summarize count() by State
Выходные данные
Состояние | count_ |
---|---|
Техас | 4701 |
Иллинойс | 2022 |
Миссури | 2016 |
Грузия | 1983 |
МИННЕСОТА | 1881 |
... | ... |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по