!in 運算子
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
篩選沒有區分大小寫字串之數據的記錄集。
下表提供運算子的 in
比較:
Operator | 描述 | 區分大小寫 | 範例 (yields true ) |
---|---|---|---|
in |
等於其中一個專案 | Yes | "abc" in ("123", "345", "abc") |
!in |
不等於任何專案 | Yes | "bca" !in ("123", "345", "abc") |
in~ |
等於任何專案 | No | "Abc" in~ ("123", "345", "abc") |
!in~ |
不等於任何專案 | No | "bCa" !in~ ("123", "345", "ABC") |
注意
巢狀陣會扁平化成單一值清單。 例如,x in (dynamic([1,[2,3]]))
會成為 x in (1,2,3)
。
如需其他運算符的詳細資訊,以及判斷哪一個運算元最適合您的查詢,請參閱 數據類型字串運算元。
目前僅支援 ASCII 文字的不區分大小寫運算符。 針對非 ASCII 比較,請使用 tolower() 函式。
效能祕訣
注意
效能取決於搜尋類型和數據結構。 如需最佳做法,請參閱 查詢最佳做法。
語法
T |
where
col!in
(
表達式 ...,
)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
T | string |
✔️ | 要篩選的表格式輸入。 |
col | string |
✔️ | 要篩選的數據行。 |
expression | 純量或表格式 | ✔️ | 表達式,指定要搜尋的值。 每個運算式可以是 純量 值或 產生一組值的表格式表達式 。 如果表格式表達式有多個數據行,則會使用第一個數據行。 搜尋最多會考慮 1,000,000 個相異值。 |
傳回
述詞為 true
的 T 數據列。
範例
純量清單
下列查詢示範如何搭配以逗號分隔的純量值清單使用 !in
。
StormEvents
| where State !in ("FLORIDA", "GEORGIA", "NEW YORK")
| count
輸出
計數 |
---|
54291 |
動態陣列
下列查詢示範如何搭配動態陣列使用 !in
。
StormEvents
| where State !in (dynamic(["FLORIDA", "GEORGIA", "NEW YORK"]))
| count
輸出
計數 |
---|
54291 |
您也可以使用 let 語句來撰寫相同的查詢。
let states = dynamic(["FLORIDA", "GEORGIA", "NEW YORK"]);
StormEvents
| where State !in (states)
| summarize count() by State
輸出
計數 |
---|
54291 |
表格式表達式
下列查詢示範如何搭配內嵌表格式表達式使用 !in
。 請注意,內嵌表格式表達式必須以雙括弧括住。
StormEvents
| where State !in (PopulationData | where Population > 5000000 | project State)
| summarize count() by State
輸出
州/省 | 計數 |
---|---|
堪薩斯州 | 3166 |
愛荷華州 | 2337 |
內布拉斯加州 | 1766 |
奧克拉荷馬州 | 1,716 |
南達科他州 | 1567 |
... | ... |
您也可以使用 let 語句來撰寫相同的查詢。 請注意,本例中不需要上一個範例中提供的雙括弧。
let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents
| where State !in (large_states)
| summarize count() by State
輸出
州/省 | 計數 |
---|---|
堪薩斯州 | 3166 |
愛荷華州 | 2337 |
內布拉斯加州 | 1766 |
奧克拉荷馬州 | 1,716 |
南達科他州 | 1567 |
... | ... |