opérateur where

Filtre une table d’après le sous-ensemble de lignes correspondant à un prédicat.

Les where opérateurs et filter sont équivalents

Syntax

T| wherePrédicat

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
T string ✔️ Entrée tabulaire dont les enregistrements doivent être filtrés.
Predicate string ✔️ Expression qui prend la valeur d’un bool pour chaque ligne en T.

Retours

Les lignes de T dont Predicate est true.

Notes

Toutes les fonctions de filtrage retournent false par rapport aux valeurs null. Utilisez des fonctions null spéciales pour écrire des requêtes qui gèrent des valeurs null.

Conseils sur les performances

  • Utilisez des comparaisons simples entre les noms de colonne et les constantes. (« Constante » s’entend dans le sens de constante au fil de la table, de telle sorte que now() et ago() soient OK, tout comme les valeurs scalaires affectées à l’aide d’une instruction let.)

    Par exemple, préférez where Timestamp >= ago(1d) à where bin(Timestamp, 1d) == ago(1d).

  • Simplest terms first (termes les plus simples en premier) : si vous avez plusieurs clauses unies par and, insérez d’abord les clauses n’impliquant qu’une seule colonne. C’est pourquoi Timestamp > ago(1d) and OpId == EventId est plus adapté.

Pour plus d’informations, consultez le résumé des opérateurs de chaîne disponibles et le résumé des opérateurs numériques disponibles.

Exemples

Classer les comparaisons par complexité

La requête suivante retourne les enregistrements d’orage qui signalent des biens endommagés, sont des inondations et commencent et se terminent à différents endroits.

Notez que nous avons placé la comparaison entre deux colonnes en dernier, car l’opérateur where ne peut pas utiliser l’index et force une analyse.

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

Le tableau suivant affiche uniquement les 10 premiers résultats. Pour voir la sortie complète, exécutez la requête.

DamageProperty Type d’événement BeginLocation EndLocation
5 000 Crue FAYETTE VILLE LOWBER
5 000 Crue MORRISVILLE WEST WAYNESBURG
10000 Crue COPELAND HARRIS GROVE
5 000 Crue GLENFORD MT PERRY
25000 Crue EAST SENECA BUFFALO AIRPARK ARPT
20000 Crue EBENEZER SLOAN
10000 Crue BUEL CALHOUN
10000 Crue GOODHOPE WEST MILFORD
5 000 Crue FORÊT DUNKERQUE
20000 Crue FARMINGTON MANNINGTON

Vérifier si la colonne contient une chaîne

La requête suivante retourne les lignes dans lesquelles le mot « cow » apparaît dans n’importe quelle colonne.

StormEvents
| where * has "cow"