has_any-Operator
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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_any
T ... |
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 |
... | ... |