where 運算子
篩選資料表以建立滿足述詞的資料列子集。
where
和filter
運算符相等
語法
T| where
Predicate
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
T | string |
✔️ | 要篩選其記錄的表格式輸入。 |
Predicate | string |
✔️ | 評估為 T 中每個數據列之 bool 的運算式。 |
傳回
Predicate 是 true
之 T 中的資料列。
注意
相較於 Null 值,所有篩選函式都會傳回 false。 使用特殊的 Null 感知函式來撰寫處理 Null 值的查詢。
效能秘訣
在資料行名稱和常數之間使用簡單比較。 ('Constant' 表示資料表常數,因此
now()
和ago()
都沒問題,並且是使用now()
指派的純量值)。例如,
where Timestamp >= ago(1d)
比where bin(Timestamp, 1d) == ago(1d)
更好。最簡單的詞彙優先︰如果您使用
and
連結多個子句,請先放置只包含一個資料行的子句。 因此Timestamp > ago(1d) and OpId == EventId
比反過來要好。
如需詳細資訊,請參閱可用 String 運算子的摘要以及可用數值運算子的摘要。
範例
依複雜度排序比較
下列查詢會傳回 Storm 記錄,這些記錄會報告損毀的屬性、為水流,並在不同位置開始和結束。
請注意,我們會最後放置兩個數據行之間的比較,因為 where 運算符無法使用索引並強制掃描。
StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
and EventType == "Flood"
and BeginLocation != EndLocation
下表只顯示前10個結果。 若要查看完整的輸出,請執行查詢。
DamageProperty | EventType | BeginLocation | EndLocation |
---|---|---|---|
5000 | Flood | FAYETTE CITY LOWBER | |
5000 | Flood | VILLEVILLE WEST WAYNE一 | |
10000 | Flood | COPELAND HARRIS GROVE | |
5000 | Flood | FORD MT PERRY | |
25000 | Flood | EAST SENECA BUFFALO AIRPARK ARPT | |
20000 | Flood | EBENEZER SLOAN | |
10000 | Flood | BUEL CALHOUN | |
10000 | Flood | GOODHOPE WEST MILFORD | |
5000 | Flood | DUNKIRK 樹系 | |
20000 | Flood | MANNTON MANNMANN |
檢查資料列是否包含字串
下列查詢會傳回任何數據行中出現「牛子」一詞的數據列。
StormEvents
| where * has "cow"
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應