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 à redução do desempenho da consulta.

Sintaxe

T|wherehas_any(

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.

Devoluções

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

Exemplos

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 contar_
NOVA IORQUE 1750
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
NOVA JERSEY 1044
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
NOVO MÉXICO 5:27
NEW HAMPSHIRE #394

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 contar_
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
ATLÂNTICO SUL 193
ATLÂNTICO NORTE 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 contar_
CAROLINA DO NORTE 1721
DAKOTA DO SUL 1567
CAROLINA DO SUL 915
DAKOTA DO NORTE 905
ATLÂNTICO SUL 193
ATLÂNTICO NORTE 188

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 contar_
TEXAS 4701
ILINÓIS 2022
MISSOURI 2016
GEÓRGIA 1983
MINESOTA 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 contar_
TEXAS 4701
ILINÓIS 2022
MISSOURI 2016
GEÓRGIA 1983
MINESOTA 1881
... ...