Compartilhar via


operador has_any

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Filtra um conjunto de registros para dados com qualquer conjunto de cadeias de caracteres que não diferenciam maiúsculas de minúsculas. has_anyPesquisas por termos indexados, em que um termo indexado tem três ou mais caracteres. Se o termo tiver menos de três caracteres, a consulta examinará os valores na coluna, o que é mais lento do que pesquisar o termo no índice de termos.

Para obter mais informações sobre outros operadores e determinar qual operador é mais apropriado para sua consulta, consulte operadores de cadeia de caracteres de tipo de dados.

Dicas de desempenho

Observação

Quando mais de 128 termos de pesquisa são usados, a otimização de pesquisa de índice de texto é desabilitada, o que pode levar a um desempenho de consulta reduzido.

Sintaxe

T | where colhas_any ( expressão ...,)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
T string ✔️ A entrada tabular a ser filtrada.
col string ✔️ A coluna pela qual filtrar.
expressão escalar ou tabular ✔️ Uma expressão que especifica os valores a serem pesquisados. 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 várias colunas, a primeira coluna será usada. A pesquisa considerará até 10.000 valores distintos.

Observação

Uma expressão tabular embutida deve ser colocada entre parênteses duplos. Confira o exemplo.

Devoluções

As linhas em T para as quais o predicado é true.

Exemplos

Lista de escalares

A consulta a seguir mostra como usar 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
NORTH CAROLINA 1721
DAKOTA DO SUL 1567
NEW JERSEY 1044
SOUTH CAROLINA 915
DAKOTA DO NORTE 905
NEW MEXICO 5:27
NEW HAMPSHIRE 394

Matriz dinâmica

A consulta a seguir mostra como usar has_any com uma matriz dinâmica.

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

Saída

Estado count_
NORTH CAROLINA 1721
DAKOTA DO SUL 1567
SOUTH CAROLINA 915
DAKOTA DO NORTE 905
ATLÂNTICO SUL 193
ATLANTIC NORTH 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_
NORTH CAROLINA 1721
DAKOTA DO SUL 1567
SOUTH CAROLINA 915
DAKOTA DO NORTE 905
ATLÂNTICO SUL 193
ATLANTIC NORTH 188

Expressão tabular

A consulta a seguir mostra como usar has_any com uma expressão tabular embutida. Observe que uma expressão tabular embutida deve ser colocada 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. Observe que os parênteses duplos, conforme fornecido 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
... ...