Operatore has_any
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Filtra un set di record per i dati con qualsiasi set di stringhe senza distinzione tra maiuscole e minuscole. has_any
cerca 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 |
... | ... |