has_any 演算子

大文字と小文字を区別しない文字列のセットを使用して、データのレコード セットをフィルター処理します。 has_any は、インデックス付き用語を検索します。インデックス付き 用語 は 3 文字以上です。 用語が 3 文字未満の場合、クエリは列内の値をスキャンします。これは、用語インデックスで用語を検索するよりも低速です。

その他の演算子の詳細、およびクエリに最適な演算子については、「 datatype 文字列演算子」を参照してください。

構文

T|where大佐has_any(, ... )

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

パラメーター

名前 必須 説明
T string ✔️ フィルター処理する表形式の入力。
col string ✔️ フィルター処理の対象となる列。
式 (expression) スカラーまたは表形式 ✔️ 検索する値を指定する式。 各式には、 スカラー 値、または値のセットを生成する 表形式の式 を指定できます。 表形式の式に複数の列がある場合は、最初の列が使用されます。 検索では、最大 10,000 個の個別の値が考慮されます。

Note

インライン表形式の式は、二重かっこで囲む必要があります。 を参照してください。

戻り値

述語が true である T 内の行。

スカラーの一覧

次のクエリは、スカラー値のコンマ区切りのリストで を使用 has_any する方法を示しています。

StormEvents 
| where State has_any ("CAROLINA", "DAKOTA", "NEW") 
| summarize count() by State

出力

State count_
ニューヨーク 1750
ノースカロライナ 1721
サウスダコタ 1567
ニュージャージー 1044
サウスカロライナ 915
ノースダコタ 905
ニューメキシコ 527
ニューハンプシャー 394

Dynamic array

次のクエリは、動的配列で を使用 has_any する方法を示しています。

StormEvents 
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State

出力

State count_
ノースカロライナ 1721
サウスダコタ 1567
サウスカロライナ 915
ノースダコタ 905
ATLANTIC SOUTH 193
北大西洋 188

同じクエリを let ステートメントで記述することもできます。

let areas = dynamic(['south', 'north']);
StormEvents 
| where State has_any (areas)
| summarize count() by State

出力

State count_
ノースカロライナ 1721
サウスダコタ 1567
サウスカロライナ 915
ノースダコタ 905
ATLANTIC SOUTH 193
北大西洋 188

表形式の式

次のクエリは、インライン表形式式で を使用 has_any する方法を示しています。 インライン表形式の式は、二重かっこで囲む必要があることに注意してください。

StormEvents 
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State

出力

State count_
テキサス州 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
ミネソタ 1881
... ...

同じクエリを let ステートメントで記述することもできます。 この場合、最後の例で示した二重かっこは不要であることに注意してください。

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State has_any (large_states)
| summarize count() by State

出力

State count_
テキサス州 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
ミネソタ 1881
... ...