where 演算子

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

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

構文

T | where Predicate

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

パラメーター

件名 タイプ Required 説明
T string ✔️ レコードをフィルター処理する表形式の入力。
Predicate string ✔️ Tの各行に対してブール値に評価される式。

返品

Predicatetrue である T 内の行。

Note

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

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

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

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

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

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

複雑さによる順序比較

次のクエリは、破損したプロパティを報告し、洪水であり、さまざまな場所で開始と終了を行う Storm レコードを返します。

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

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

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

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

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

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

StormEvents
| where * has "cow"