Compartilhar via


operador where

Filtra uma tabela para o subconjunto de linhas que satisfazem a um predicado.

Os where e filter operadores são equivalentes

Sintaxe

T | where Predicado

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
T string ✔️ Entrada tabular cujos registros devem ser filtrados.
Predicado string ✔️ Expressão que avalia a um bool para cada linha em T.

Devoluções

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

Observação

Todas as funções de filtragem retornam false quando comparadas com valores nulos. Use funções especiais com reconhecimento de nulo para escrever consultas que manipulam valores nulos.

Dicas de desempenho

  • Use comparações simples entre os nomes de coluna e constantes. (“Constante” significa constante na tabela, portanto, now() e ago() estão OK, bem como valores escalares atribuídos usando uma instrução let.)

    Por exemplo, prefira where Timestamp >= ago(1d) a where bin(Timestamp, 1d) == ago(1d).

  • Termos mais simples primeiro: se houver várias cláusulas unidas com and, primeiro coloque as cláusulas que envolvam apenas uma coluna. Assim, Timestamp > ago(1d) and OpId == EventId é melhor do que o oposto.

Para saber mais, confira o resumo de operadores de cadeia de caracteres disponíveis e o resumo de operadores numéricos disponíveis.

Exemplos

Ordenar comparações por complexidade

A consulta a seguir retorna registros de tempestade que relatam propriedades danificadas, inundações e início e fim em lugares diferentes.

Observe que colocamos a comparação entre duas colunas por último, pois o operador onde não pode usar o índice e força uma varredura.

StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
    and EventType == "Flood"
    and BeginLocation != EndLocation 

A tabela a seguir mostra apenas os 10 principais resultados. Para ver a saída completa, execute a consulta.

DamageProperty EventType BeginLocation EndLocation
5.000 Saturação CIDADE DE FAYETTE LOWBER
5.000 Saturação MORRISVILLE WAYNESBURG OESTE
10000 Saturação BOSQUE DE COPELAND HARRIS
5.000 Saturação GLENFORD MT PERRY
25000 Saturação LESTE SENECA BUFFALO AIRPARK ARPT
20000 Saturação EBENEZER SLOAN
10000 Saturação BUEL CALHOUN
10000 Saturação GOODHOPE MILFORD OESTE
5.000 Saturação FLORESTA DE DUNQUERQUE
20000 Saturação FARMINGTON MANNINGTON

Verificar se a coluna contém cadeia de caracteres

A consulta a seguir retorna as linhas nas quais a palavra "vaca" aparece em qualquer coluna.

StormEvents
| where * has "cow"