operador where

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

Os where operadores e filter são equivalentes

Syntax

T| wherePredicado

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
T string ✔️ Entrada tabular cujos registros devem ser filtrados.
Predicado string ✔️ Expressão que é avaliada como um bool para cada linha em T.

Retornos

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 nulo para gravar consultas que lidam com 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

Fazer comparações por complexidade

A consulta a seguir retorna registros de tempestade que relatam propriedades danificadas, são inundações e começam e terminam em locais diferentes.

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

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 FAYETTE CITY LOWBER
5.000 Saturação MORRISVILLE WEST WAYNESBURG
10000 Saturação COPELAND HARRIS GROVE
5.000 Saturação GLENFORD MT PERRY
25000 Saturação EAST SENECA BUFFALO AIRPARK ARPT
20000 Saturação EBENEZER SLOAN
10000 Saturação BUEL CALHOUN
10000 Saturação GOODHOPE WEST MILFORD
5.000 Saturação FLORESTA DUNKIRK
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"