Share via


operador has_any

Filtra um conjunto de registos para dados com qualquer conjunto de cadeias não sensíveis a maiúsculas e minúsculas. has_any procura termos indexados, em que um termo indexado tem três ou mais carateres. Se o termo for inferior a três carateres, a consulta analisa os valores na coluna, o que é mais lento do que procurar o termo no índice de termos.

Para obter mais informações sobre outros operadores e determinar qual o operador mais adequado para a sua consulta, veja operadores de cadeias de tipo de dados.

Syntax

T|wherecolhas_any(expressão, ... )

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
T string ✔️ A entrada tabular a filtrar.
col string ✔️ A coluna pela qual filtrar.
expression escalar ou tabular ✔️ Uma expressão que especifica os valores para os quais procurar. Cada expressão pode ser um valor escalar ou uma expressão tabular que produz um conjunto de valores. Se uma expressão tabular tiver múltiplas colunas, é utilizada a primeira coluna. A pesquisa considerará até 10 000 valores distintos.

Nota

Uma expressão tabular inline tem de estar entre parênteses duplos. Veja o exemplo.

Devoluções

Linhas em T para as quais o predicado é true.

Exemplos

Lista de escalares

A consulta seguinte mostra como utilizar has_any com uma lista separada por vírgulas de valores escalares.

StormEvents 
| where State has_any ("CAROLINA", "DAKOTA", "NEW") 
| summarize count() by State

Saída

Estado count_
NEW YORK 1750
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
NOVA JERSEY 1044
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
NOVO MÉXICO 527
NEW HAMPSHIRE 394

Matriz dinâmica

A consulta seguinte mostra como utilizar has_any com uma matriz dinâmica.

StormEvents 
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State

Saída

Estado count_
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
SUL DO ATLÂNTICO 193
NORTE DO ATLÂNTICO 188

A mesma consulta também pode ser escrita com uma instrução let.

let areas = dynamic(['south', 'north']);
StormEvents 
| where State has_any (areas)
| summarize count() by State

Saída

Estado count_
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
SUL DO ATLÂNTICO 193
NORTE DO ATLÂNTICO 188

Expressão tabular

A consulta seguinte mostra como utilizar has_any com uma expressão tabular inline. Repare que uma expressão tabular inline tem de estar entre parênteses duplos.

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

Saída

Estado count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEÓRGIA 1983
MINNESOTA 1881
... ...

A mesma consulta também pode ser escrita com uma instrução let. Repare que os parênteses duplos, conforme indicado no último exemplo, não são necessários neste caso.

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

Saída

Estado count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEÓRGIA 1983
MINNESOTA 1881
... ...