Freigeben über


has_any-Operator

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Filtert einen Datensatzsatz für Daten mit einer Reihe von Zeichenfolgen ohne Groß-/Kleinschreibung. has_any sucht nach indizierten Ausdrücken, wobei ein indiziertes Ausdruck drei oder mehr Zeichen ist. Wenn ihr Ausdruck weniger als drei Zeichen enthält, überprüft die Abfrage die Werte in der Spalte, was langsamer ist als das Nachschlagen des Begriffs im Ausdrucksindex.

Weitere Informationen zu anderen Operatoren und zum Bestimmen, welcher Operator für Ihre Abfrage am besten geeignet ist, finden Sie unter Datentypzeichenfolgenoperatoren.

Leistungstipps

Hinweis

Wenn mehr als 128 Suchbegriffe verwendet werden, ist die Suchoptimierung für Textindex deaktiviert, was zu einer verringerten Abfrageleistung führen kann.

Syntax

Spaltenausdruck, (has_anyT ... | where )

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
T string ✔️ Die zu filternde tabellarische Eingabe.
col string ✔️ Die Spalte, nach der gefiltert werden soll.
expression Skalar oder tabellarisch ✔️ Ein Ausdruck, der die Werte angibt, nach denen gesucht werden soll. Jeder Ausdruck kann ein skalarer Wert oder ein tabellarischer Ausdruck sein, der eine Gruppe von Werten erzeugt. Wenn ein tabellarischer Ausdruck mehrere Spalten enthält, wird die erste Spalte verwendet. Die Suche berücksichtigt bis zu 10.000 unterschiedliche Werte.

Hinweis

Ein inline tabellarischer Ausdruck muss mit doppelten Klammern eingeschlossen werden. Siehe Beispiel

Gibt zurück

Zeilen in T, für die das Prädikat true ist.

Beispiele

Liste der Skalar

Die folgende Abfrage zeigt, wie Sie mit einer durch Trennzeichen getrennten Liste von Skalarwerten verwendet has_any werden.

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

Ausgabe

State count_
NEW YORK 1750
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
NEW JERSEY 1044
SOUTH CAROLINA 915
NORTH DAKOTA 905
NEW MEXICO 5:27
NEW HAMPSHIRE 394

Dynamisches Array

Die folgende Abfrage zeigt die Verwendung has_any mit einem dynamischen Array.

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

Ausgabe

State count_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
NORTH DAKOTA 905
ATLANTIC SOUTH 193
ATLANTIC NORTH 188

Dieselbe Abfrage kann auch mit einer Let-Anweisung geschrieben werden.

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

Ausgabe

State count_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
NORTH DAKOTA 905
ATLANTIC SOUTH 193
ATLANTIC NORTH 188

Tabellarischer Ausdruck

Die folgende Abfrage zeigt, wie Sie mit einem inline tabellarischen Ausdruck verwendet has_any werden. Beachten Sie, dass ein inline tabellarischer Ausdruck mit doppelten Klammern eingeschlossen werden muss.

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

Ausgabe

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

Dieselbe Abfrage kann auch mit einer Let-Anweisung geschrieben werden. Beachten Sie, dass die im letzten Beispiel angegebenen doppelten Klammern in diesem Fall nicht erforderlich sind.

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

Ausgabe

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