has_any 運算子
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
使用任何一組不區分大小寫的字串來篩選數據記錄集。 has_any
會搜尋索引字詞,其中索引 字詞 為三個或多個字元。 如果您的字詞少於三個字元,查詢會掃描數據行中的值,這比查閱字詞索引中的字詞慢。
如需其他運算符的詳細資訊,以及判斷哪一個運算元最適合您的查詢,請參閱 數據類型字串運算元。
效能祕訣
注意
使用超過 128 個搜尋字詞時,會停用文字索引查閱優化,這可能會導致查詢效能降低。
語法
T |
where
colhas_any
(
表達式 ...,
)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
T | string |
✔️ | 要篩選的表格式輸入。 |
col | string |
✔️ | 要篩選的數據行。 |
expression | 純量或表格式 | ✔️ | 表達式,指定要搜尋的值。 每個運算式可以是 純量 值或 產生一組值的表格式表達式 。 如果表格式表達式有多個數據行,則會使用第一個數據行。 搜尋最多會考慮 10,000 個相異值。 |
注意
內嵌表格式表達式必須以雙括弧括住。 請參閱 範例。
傳回
述詞為 true
的 T 數據列。
範例
純量清單
下列查詢示範如何搭配以逗號分隔的純量值清單使用 has_any
。
StormEvents
| where State has_any ("CAROLINA", "DAKOTA", "NEW")
| summarize count() by State
輸出
州/省 | 計數_ |
---|---|
紐約州 | 1750 |
北卡羅來那州 | 1721 |
南達科他州 | 1567 |
紐澤西州 | 1044 |
南卡羅來那州 | 915 |
NORTH DAKOTA | 905 |
新墨西哥州 | 527 |
新罕布夏州 | 394 |
動態陣列
下列查詢示範如何搭配動態陣列使用 has_any
。
StormEvents
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State
輸出
州/省 | 計數_ |
---|---|
北卡羅來那州 | 1721 |
南達科他州 | 1567 |
南卡羅來那州 | 915 |
NORTH DAKOTA | 905 |
大西洋南部 | 193 |
大西洋北 | 188 |
您也可以使用 let 語句來撰寫相同的查詢。
let areas = dynamic(['south', 'north']);
StormEvents
| where State has_any (areas)
| summarize count() by State
輸出
州/省 | 計數_ |
---|---|
北卡羅來那州 | 1721 |
南達科他州 | 1567 |
南卡羅來那州 | 915 |
NORTH DAKOTA | 905 |
大西洋南部 | 193 |
大西洋北 | 188 |
表格式表達式
下列查詢示範如何搭配內嵌表格式表達式使用 has_any
。 請注意,內嵌表格式表達式必須以雙括弧括住。
StormEvents
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State
輸出
州/省 | 計數_ |
---|---|
德克薩斯州 | 4701 |
伊利諾州 | 2022 |
密蘇里州 | 2016 |
喬治亞州 | 1983 |
明尼蘇達州 | 1881 |
... | ... |
您也可以使用 let 語句來撰寫相同的查詢。 請注意,本例中不需要上一個範例中提供的雙括弧。
let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents
| where State has_any (large_states)
| summarize count() by State
輸出
州/省 | 計數_ |
---|---|
德克薩斯州 | 4701 |
伊利諾州 | 2022 |
密蘇里州 | 2016 |
喬治亞州 | 1983 |
明尼蘇達州 | 1881 |
... | ... |