Partager via


in~, opérateur

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

Filtre un jeu d’enregistrements pour les données avec une chaîne non sensible à la casse.

Le tableau suivant fournit une comparaison des in opérateurs :

Opérateur Description Respecte la casse Exemple (génère true)
in Égal à l’un des éléments Oui "abc" in ("123", "345", "abc")
!in N’est égal à aucun des éléments Oui "bca" !in ("123", "345", "abc")
in~ Est égal à l’un des éléments Non "Abc" in~ ("123", "345", "abc")
!in~ N’est égal à aucun des éléments Non "bCa" !in~ ("123", "345", "ABC")

Remarque

Les tableaux imbriqués sont aplatis en une seule liste de valeurs. Par exemple, x in (dynamic([1,[2,3]])) devient x in (1,2,3).

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.

Les opérateurs insensibles à la casse sont actuellement pris en charge uniquement pour le texte ASCII. Pour une comparaison non-ASCII, utilisez la fonction tolower().

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.

Remarque

Les performances dépendent du type de recherche et de la structure des données. Pour connaître les meilleures pratiques, consultez les meilleures pratiques relatives aux requêtes.

Lorsque cela est possible, utilisez le respect de la casse.

Syntaxe

Expression T | where col ... in~ (,)

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’à 1 000 000 valeurs distinctes.

Retours

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

Exemples

Liste des scalaires

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

StormEvents 
| where State in~ ("FLORIDA", "georgia", "NEW YORK") 
| count

Sortie

Count
4775

Tableau dynamique

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

StormEvents 
| where State in~ (dynamic(["FLORIDA", "georgia", "NEW YORK"])) 
| count

Sortie

Count
4775

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

let states = dynamic(["FLORIDA", "georgia", "NEW YORK"]);
StormEvents 
| where State has_any (states)
| summarize count() by State

Sortie

Count
4775

Expression tabulaire

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

StormEvents 
| where State in~ (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 in~ (large_states)
| summarize count() by State

Sortie

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