where 運算子
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
將數據表篩選至滿足述詞的數據列子集。
where
和filter
運算符相等
語法
T | where
述詞
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
T | string |
✔️ | 要篩選其記錄的表格式輸入。 |
謂語 | string |
✔️ | 評估為 T 中每個數據列布爾值的表達式。 |
傳回
述詞為 true
的 T 數據列。
注意
與 Null 值比較時,所有篩選函式都會傳回 false。 使用特殊的 Null 感知函式來撰寫處理 Null 值的查詢。
效能祕訣
使用數據行名稱和常數之間的簡單比較 。 ('Constant' 表示數據表上的常數 - 因此
now()
ago()
和 是OK,而且是使用語句指派的let
純量值。例如,偏好
where Timestamp >= ago(1d)
使用where bin(Timestamp, 1d) == ago(1d)
。第一個最簡單的詞彙:如果您有多個子句與
and
連在一起,請先放置只包含一個數據行的子句。 所以Timestamp > ago(1d) and OpId == EventId
比另一種方式更好。
如需詳細資訊,請參閱可用字串運算符的摘要和可用數值運算符的摘要。
範例
依複雜度排序比較
下列查詢會傳回暴風雨記錄,這些記錄報告受損的屬性、是洪水,並在不同地方開始和結束。
請注意,我們會將兩個數據行之間的比較放在最後,因為 where 運算符無法使用索引並強制掃描。
StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
and EventType == "Flood"
and BeginLocation != EndLocation
下表只顯示前10個結果。 若要查看完整的輸出,請執行查詢。
DamageProperty | EventType | BeginLocation | EndLocation |
---|---|---|---|
5000 | 洪水 | 費耶特市 LOWBER | |
5000 | 洪水 | 莫里斯維爾西韋恩斯堡 | |
10000 | 洪水 | 科普蘭哈裡斯格羅夫 | |
5000 | 洪水 | 葛籣福德山佩里 | |
25000 | 洪水 | 東塞內卡布法羅機場ARPT | |
20000 | 洪水 | EBENEZER SLOAN | |
10000 | 洪水 | BUEL CALHOUN | |
10000 | 洪水 | 古德霍普西米爾福德 | |
5000 | 洪水 | 敦克爾克森林 | |
20000 | 洪水 | 法明頓·曼寧頓 |
檢查資料列是否包含字串
下列查詢會傳回任何數據行中出現 「cow」 一字的數據列。
StormEvents
| where * has "cow"