operador where
Filtra uma tabela para o subconjunto de linhas que satisfazem um predicado.
Os
where
operadores efilter
são equivalentes
Syntax
T| where
Predicado
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
T | string | ✓ | Entrada tabular cujos registos devem ser filtrados. |
Predicado | string | ✓ | Expressão que avalia como um bool para cada linha em T. |
Devoluções
Linhas em T para as quais Predicado é true
.
Nota
Todas as funções de filtragem devolvem false quando comparadas com valores nulos. Utilize funções especiais com deteção de nulos para escrever consultas que processam valores nulos.
Sugestões de desempenho
Utilize comparações simples entre nomes de colunas e constantes. ("Constante" significa constante sobre a tabela - assim
now()
como eago()
são OK, assim como os valores escalares atribuídos com umalet
instrução.)Por exemplo, prefira
where Timestamp >= ago(1d)
where bin(Timestamp, 1d) == ago(1d)
.Termos mais simples primeiro: se tiver várias cláusulas juntas com
and
, coloque primeiro as cláusulas que envolvem apenas uma coluna. AssimTimestamp > ago(1d) and OpId == EventId
é melhor do que o contrário.
Para obter mais informações, veja o resumo dos operadores de Cadeia disponíveis e o resumo dos operadores Numéricos disponíveis.
Exemplos
Comparações de encomendas por complexidade
A consulta seguinte devolve registos de tempestade que reportam propriedades danificadas, são inundações e começam e terminam em locais diferentes.
Repare que colocamos a comparação entre duas colunas em último lugar, uma vez que o operador where não pode utilizar o índice e força uma análise.
StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
and EventType == "Flood"
and BeginLocation != EndLocation
A tabela seguinte mostra apenas os 10 melhores resultados. Para ver o resultado completo, execute a consulta.
DamageProperty | EventType | BeginLocation | EndLocation |
---|---|---|---|
5000 | Inundação | CIDADE DE FAYETTE LOWBER | |
5000 | Inundação | MORRISVILLE WEST WAYNESBURG | |
10000 | Inundação | COPELAND HARRIS GROVE | |
5000 | Inundação | GLENFORD MT PERRY | |
25 000 | Inundação | EAST SENECA BUFFALO AIRPARK ARPT | |
20 000 | Inundação | EBENEZER SLOAN | |
10000 | Inundação | BUEL ASSUAR | |
10000 | Inundação | GOODHOPE WEST MILFORD | |
5000 | Inundação | FLORESTA DUNQUERQUE | |
20 000 | Inundação | FARMINGTON MANNINGTON |
Verificar se a coluna contém uma cadeia
A consulta seguinte devolve as linhas nas quais a palavra "vaca" aparece em qualquer coluna.
StormEvents
| where * has "cow"