Condividi tramite


Operatore has_any

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

Filtra un set di record per i dati con qualsiasi set di stringhe senza distinzione tra maiuscole e minuscole. has_anycerca termini indicizzati, in cui un termine indicizzato è costituito da tre o più caratteri. Se il termine è inferiore a tre caratteri, la query analizza i valori nella colonna, più lentamente rispetto alla ricerca del termine nell'indice del termine.

Per altre informazioni sugli altri operatori e per determinare quale operatore è più appropriato per la query, vedere Operatori stringa tipo di dati.

Suggerimenti per incrementare le prestazioni

Nota

Quando vengono usati più di 128 termini di ricerca, l'ottimizzazione della ricerca dell'indice di testo è disabilitata, riducendo così le prestazioni delle query.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
T string ✔️ Input tabulare da filtrare.
col string ✔️ Colonna in base alla quale filtrare.
expression scalare o tabulare ✔️ Espressione che specifica i valori per cui eseguire la ricerca. Ogni espressione può essere un valore scalare o un'espressione tabulare che produce un set di valori. Se un'espressione tabulare contiene più colonne, viene utilizzata la prima colonna. La ricerca considererà fino a 10.000 valori distinti.

Nota

Un'espressione tabulare inline deve essere racchiusa tra parentesi doppie. Vedere l'esempio.

Valori restituiti

Righe in T per cui il predicato è true.

Esempi

Elenco di scalari

La query seguente illustra come usare has_any con un elenco delimitato da virgole di valori scalari.

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

Output

Provincia count_
NEW YORK 1750
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
NEW JERSEY 1044
SOUTH CAROLINA 915
NORTH DAKOTA 905
NEW MEXICO 527
NEW HAMPSHIRE 394

Matrice dinamica

La query seguente illustra come usare has_any con una matrice dinamica.

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

Output

Provincia count_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
NORTH DAKOTA 905
SUD ATLANTICO 193
ATLANTICO SETTENTRIONALE 188

La stessa query può essere scritta anche con un'istruzione let.

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

Output

Provincia count_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
NORTH DAKOTA 905
SUD ATLANTICO 193
ATLANTICO SETTENTRIONALE 188

Espressione tabulare

La query seguente illustra come usare has_any con un'espressione tabulare inline. Si noti che un'espressione tabulare inline deve essere racchiusa tra parentesi doppie.

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

Output

Provincia count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
MINNESOTA 1881
... ...

La stessa query può essere scritta anche con un'istruzione let. Si noti che le doppie parentesi fornite nell'ultimo esempio non sono necessarie in questo caso.

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

Output

Provincia count_
TEXAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
MINNESOTA 1881
... ...