has_any, opérateur
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 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 |
... | ... |