Operatore where

Filtra una tabella per trovare il subset di righe che soddisfano un predicato.

Gli where operatori e filter sono equivalenti

Sintassi

T| wherePredicato

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
T string ✔️ Input tabulare i cui record devono essere filtrati.
Predicate string ✔️ Espressione che restituisce un valore bool per ogni riga in T.

Restituisce

Righe in T per cui Predicate è true.

Nota

Tutte le funzioni di filtro restituiscono false rispetto ai valori Null. Usare funzioni speciali con riconoscimento null per scrivere query che gestiscono valori Null.

Suggerimenti per incrementare le prestazioni

  • Usare confronti semplici tra i nomi di colonna e le costanti. 'Costante' significa costante sulla tabella, quindi now() e ago() sono validi, così come i valori scalari assegnati tramite un'istruzione let.

    Ad esempio, preferire where Timestamp >= ago(1d) a where bin(Timestamp, 1d) == ago(1d).

  • Prima i termini più semplici: se sono presenti più clausole unite con and, inserire prima le clausole che coinvolgono una sola colonna. Quindi Timestamp > ago(1d) and OpId == EventId è meglio del contrario.

Per altre informazioni, vedere il riepilogo di operatori di stringa disponibili e il riepilogo di operatori numerici disponibili.

Esempio

Confronti degli ordini in base alla complessità

La query seguente restituisce i record storm che segnalano proprietà danneggiate, sono inondazioni e iniziano e terminano in posizioni diverse.

Si noti che il confronto tra due colonne è ultimo, come operatore in cui l'operatore non può usare l'indice e forza un'analisi.

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

La tabella seguente mostra solo i primi 10 risultati. Per visualizzare l'output completo, eseguire la query.

DanniProperty EventType BeginLocation EndLocation
5000 Alluvione FAYETTE CITY LOWBER
5000 Alluvione MORRISVILLE WEST WAYNESBURG
10000 Alluvione COPELAND HARRIS GROVE
5000 Alluvione GLENFORD MT PERRY
25000 Alluvione EAST SENECA BUFFALO AIRPARK ARPT
20000 Alluvione EBENEZER SLOAN
10000 Alluvione BUEL CALHOUN
10000 Alluvione GOODHOPE WEST MILFORD
5000 Alluvione FORESTA DUNKIRK
20000 Alluvione FARMINGTON MANNINGTON

Controllare se la colonna contiene la stringa

La query seguente restituisce le righe in cui viene visualizzata la parola "cow" in qualsiasi colonna.

StormEvents
| where * has "cow"