where 演算子

述語の条件を満たす行のサブセットにテーブルをフィルター処理します。

where演算子と filter 演算子は同等です

構文

T| wherePredicate

構文規則について詳しく知る。

パラメーター

名前 必須 説明
T string ✔️ レコードをフィルター処理する表形式の入力。
Predicate string ✔️ T の各行のブール値に評価される式。

戻り値

Predicatetrue である T 内の行。

注意

すべてのフィルター関数は、null 値と比較すると false を返します。 null 値を処理するクエリを記述するには、特殊な null 対応関数を使用します。

パフォーマンスに関するヒント

  • シンプルな比較を使う ("定数" とは、テーブルに対する定数です。 ("定数" とは、テーブルに対する定数です。now()ago() は適切で、now()を使って割り当てられるスカラー値も同様です)。

    たとえば、where bin(Timestamp, 1d) == ago(1d) よりも where Timestamp >= ago(1d) の方が適切です。

  • 最もシンプルな語句を先頭に配置する: and で連結された複数の句がある場合は、関係する列が 1 つしかない句を先頭に配置します。 そのため、 Timestamp > ago(1d) and OpId == EventId の方が、逆の順序にするよりも適切です。

詳細については、使用可能な String 演算子の概要および使用可能な数値演算子の概要を参照してください。

複雑さによる順序の比較

次のクエリは、破損したプロパティを報告し、洪水であり、異なる場所で開始および終了する storm レコードを返します。

where 演算子がインデックスを使用して強制的にスキャンを実行できないため、2 つの列間の比較を最後に配置していることに注意してください。

StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
    and EventType == "Flood"
    and BeginLocation != EndLocation 

次の表は、上位 10 件の結果のみを示しています。 完全な出力を表示するには、クエリを実行します。

DamageProperty EventType BeginLocation EndLocation
5000 洪水 フェイエット シティ ローバー
5000 洪水 モリスビル ウエスト ウェインズバーグ
10000 洪水 コープランド・ハリ・グローブ
5000 洪水 グレンフォード マウント ペリ
25000 洪水 イースト セネカ バッファロー エアパーク ARPT
20000 洪水 EBENEZER SLOAN
10000 洪水 BUEL CALHOUN
10000 洪水 グッドホープ ウエスト ミルフォード
5000 洪水 ダンケルクの森
20000 洪水 ファーミントン マンニントン

列に文字列が含まれているかどうかを確認する

次のクエリは、"cow" という単語が任意の列に表示される行を返します。

StormEvents
| where * has "cow"