Partager via


has_any, opérateur

Filtre un jeu d’enregistrements pour les données avec n’importe quel ensemble de chaînes ne respectant pas la casse. has_any recherche les termes indexés, où un terme indexé est de trois caractères ou plus. Si votre terme comporte moins de trois caractères, la requête analyse les valeurs de la colonne, ce qui est plus lent que la recherche du terme dans l’index de terme.

Pour plus d’informations sur les autres opérateurs et déterminer l’opérateur le plus approprié pour votre requête, consultez Opérateurs de chaîne de type de données.

Syntax

T|wherecolhas_any(Expression, ... )

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
T string ✔️ Entrée tabulaire à filtrer.
col string ✔️ Colonne sur laquelle filtrer.
expression scalaire ou tabulaire ✔️ Expression qui spécifie les valeurs à rechercher. Chaque expression peut être une valeur scalaire ou une expression tabulaire qui produit un ensemble de valeurs. Si une expression tabulaire comporte plusieurs colonnes, la première colonne est utilisée. La recherche prend en compte jusqu’à 10 000 valeurs distinctes.

Notes

Une expression tabulaire inline doit être placée entre parenthèses doubles. Consultez l’exemple.

Retours

Lignes dans T dont le prédicat est défini sur true.

Exemples

Liste des scalaires

La requête suivante montre comment utiliser has_any avec une liste de valeurs scalaires séparées par des virgules.

StormEvents 
| where State has_any ("CAROLINA", "DAKOTA", "NEW") 
| summarize count() by State

Sortie

State count_
NEW YORK 1750
CAROLINE DU NORD 1721
DAKOTA DU SUD 1567
NEW JERSEY 1044
CAROLINE DU SUD 915
DAKOTA DU NORD 905
NOUVEAU MEXIQUE 527
NEW HAMPSHIRE 394

Tableau dynamique

La requête suivante montre comment utiliser has_any avec un tableau dynamique.

StormEvents 
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State

Sortie

State count_
CAROLINE DU NORD 1721
DAKOTA DU SUD 1567
CAROLINE DU SUD 915
DAKOTA DU NORD 905
ATLANTIQUE SUD 193
ATLANTIQUE NORD 188

La même requête peut également être écrite avec une instruction let.

let areas = dynamic(['south', 'north']);
StormEvents 
| where State has_any (areas)
| summarize count() by State

Sortie

State count_
CAROLINE DU NORD 1721
DAKOTA DU SUD 1567
CAROLINE DU SUD 915
DAKOTA DU NORD 905
ATLANTIQUE SUD 193
ATLANTIQUE NORD 188

Expression tabulaire

La requête suivante montre comment utiliser has_any avec une expression tabulaire inline. Notez qu’une expression tabulaire inline doit être placée entre parenthèses doubles.

StormEvents 
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State

Sortie

State count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIE 1983
MINNESOTA 1881
... ...

La même requête peut également être écrite avec une instruction let. Notez que les parenthèses doubles fournies dans le dernier exemple ne sont pas nécessaires dans ce cas.

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State has_any (large_states)
| summarize count() by State

Sortie

State count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIE 1983
MINNESOTA 1881
... ...