Operátor has_any
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Filtruje sadu záznamů pro data s libovolnou sadou řetězců bez rozlišování velkých a malých písmen. has_any
vyhledá indexované termíny, kde indexovaný termín je tři nebo více znaků. Pokud je termín menší než tři znaky, dotaz zkontroluje hodnoty ve sloupci, což je pomalejší než vyhledávání termínu v indexu termínů.
Další informace o jiných operátorech a určení, který operátor je pro váš dotaz nejvhodnější, najdete v tématu řetězcové operátory datového typu.
Tipy týkající se výkonu
Poznámka:
Pokud se používá více než 128 hledaných termínů, je optimalizace vyhledávání v textovém indexu zakázaná, což může vést ke snížení výkonu dotazů.
Syntaxe
Výraz T |
where
col ... has_any
(
,
)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
T | string |
✔️ | Tabulkový vstup pro filtrování. |
průsmyk | string |
✔️ | Sloupec, podle kterého chcete filtrovat. |
výraz | skalární nebo tabulkový | ✔️ | Výraz, který určuje hodnoty, pro které se mají hledat. Každý výraz může být skalární hodnota nebo tabulkový výraz , který vytváří sadu hodnot. Pokud má tabulkový výraz více sloupců, použije se první sloupec. Hledání bude zvažovat až 10 000 jedinečných hodnot. |
Poznámka:
Vložený tabulkový výraz musí být uzavřený s dvojitými závorky. Viz příklad.
Návraty
Řádky v T , pro které je true
predikát .
Příklady
Seznam skalárů
Následující dotaz ukazuje, jak se používá has_any
se seznamem skalárních hodnot oddělených čárkami.
StormEvents
| where State has_any ("CAROLINA", "DAKOTA", "NEW")
| summarize count() by State
Výstup
State | COUNT |
---|---|
NEW YORK | 1750 |
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1 567 |
NEW JERSEY | 1044 |
SOUTH CAROLINA | 915 |
SEVERNÍ DAKOTA | 905 |
NOVÉ MEXIKO | 527 |
NEW HAMPSHIRE | 394 |
Dynamické pole
Následující dotaz ukazuje, jak se používá has_any
s dynamickým polem.
StormEvents
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State
Výstup
State | COUNT |
---|---|
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1 567 |
SOUTH CAROLINA | 915 |
SEVERNÍ DAKOTA | 905 |
ATLANTICKÝ JIH | 193 |
ATLANTIC NORTH | 188 |
Stejný dotaz lze také napsat pomocí příkazu let.
let areas = dynamic(['south', 'north']);
StormEvents
| where State has_any (areas)
| summarize count() by State
Výstup
State | COUNT |
---|---|
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1 567 |
SOUTH CAROLINA | 915 |
SEVERNÍ DAKOTA | 905 |
ATLANTICKÝ JIH | 193 |
ATLANTIC NORTH | 188 |
Tabulkový výraz
Následující dotaz ukazuje, jak se používá has_any
s vloženým tabulkovým výrazem. Všimněte si, že vložený tabulkový výraz musí být uzavřený s dvojitými závorky.
StormEvents
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State
Výstup
State | COUNT |
---|---|
TEXAS | 4701 |
ILLINOIS | 2022 |
MISSOURI | 2016 |
GEORGIA | 1983 |
MINNESOTA | 1881 |
... | ... |
Stejný dotaz lze také napsat pomocí příkazu let. Všimněte si, že v tomto případě nejsou dvojité závorky uvedené v posledním příkladu nezbytné.
let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents
| where State has_any (large_states)
| summarize count() by State
Výstup
State | COUNT |
---|---|
TEXAS | 4701 |
ILLINOIS | 2022 |
MISSOURI | 2016 |
GEORGIA | 1983 |
MINNESOTA | 1881 |
... | ... |