where 運算子

篩選資料表以建立滿足述詞的資料列子集。

wherefilter 運算符相等

語法

T| wherePredicate

深入瞭解 語法慣例

參數

名稱 類型 必要 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"