Partager via


has_any, opérateur

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Filtre un jeu d’enregistrements pour les données avec n’importe quel ensemble de chaînes ne respectant pas la casse. has_anyrecherche des termes indexés, où un terme indexé est de trois caractères ou plus. Si votre terme est inférieur à 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 d’autres opérateurs et pour déterminer l’opérateur le plus approprié pour votre requête, consultez les opérateurs de chaîne de type de données.

Astuces pour les performances

Remarque

Lorsque plus de 128 termes de recherche sont utilisés, l’optimisation de la recherche d’index de texte est désactivée, ce qui peut entraîner une réduction des performances des requêtes.

Syntaxe

Expression T | where col ... has_any (,)

En savoir plus sur les conventions de syntaxe.

Paramètres

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

Remarque

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 séparée par des virgules de valeurs scalaires.

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 1 567
NEW JERSEY 1044
CAROLINE DU SUD 915
DAKOTA DU NORD 905
NOUVEAU-MEXIQUE 5:27
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 1 567
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 1 567
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
... ...