Condividi tramite


Operatore where

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

Gli where operatori e filter sono equivalenti

Sintassi

T | where Predicate

Altre informazioni sulle convenzioni di sintassi.

Parametri

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

Valori restituiti

Righe in T per cui Predicate è true.

Nota

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

Suggerimenti per 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.

Esempi

Confronti degli ordini in base alla complessità

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

Si noti che il confronto tra due colonne viene inserito per ultimo, perché l'operatore where 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.

DamageProperty 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 una stringa

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

StormEvents
| where * has "cow"