メインコンテンツまでスキップ

any_match

any_match

説明

指定された述語と一致する配列の要素があるかどうかを返します。

  • 述語と一致する要素が1つ以上ある場合は true (1) を返します。
  • 要素が一つも一致しない場合は false (0) を返します(配列が空の場合は特別です)。
  • 述語が1つ以上の要素でNULLを返し、他の要素で false を返す場合はNULLを返します。

この関数はバージョン3.0.6以降でサポートされています。

構文

any_match(lambda_function, arr1, arr2...)

arr1 の要素の中で、与えられたラムダ関数と一致する要素があるかどうかを返します。

パラメータ

  • arr1: 一致させる配列。
  • arrN: ラムダ関数で使用されるオプションの配列。
  • lambda_function: 値を一致させるために使用するラムダ関数。

戻り値

BOOLEAN値を返します。

使用上の注意

  • ラムダ関数は array_map() の使用上の注意に従います。
  • インプット配列がnullであるか、ラムダ関数がnullを返した場合、nullが返されます。
  • もし arr1 が空の場合、 false が返されます。
  • MAPにこの関数を適用する場合は、any_match((k,v)->k>v,map)any_match(map_values(transform_values((k,v)->k>v, map))) に書き換えてください。例えば、 select any_match(map_values(transform_values((k,v)->k>v, map{2:1}))); は 1 を返します。

x のいずれの要素が y の要素よりも小さいかどうかをチェックします。

select any_match((x,y) -> x < y, [1,2,8], [4,5,6]);
+--------------------------------------------------+
| any_match((x, y) -> x < y, [1, 2, 8], [4, 5, 6]) |
+--------------------------------------------------+
| 1 |
+--------------------------------------------------+

select any_match((x,y) -> x < y, [11,12,8], [4,5,6]);
+----------------------------------------------------+
| any_match((x, y) -> x < y, [11, 12, 8], [4, 5, 6]) |
+----------------------------------------------------+
| 0 |
+----------------------------------------------------+

select any_match((x,y) -> x < y, [11,12,null], [4,5,6]);
+-------------------------------------------------------+
| any_match((x, y) -> x < y, [11, 12, NULL], [4, 5, 6]) |
+-------------------------------------------------------+
| NULL |
+-------------------------------------------------------+

select any_match((x,y) -> x < y, [], []);
+------------------------------------+
| any_match((x, y) -> x < y, [], []) |
+------------------------------------+
| 0 |
+------------------------------------+

select any_match((x,y) -> x < y, null, [4,5,6]);
+---------------------------------------------+
| any_match((x, y) -> x < y, NULL, [4, 5, 6]) |
+---------------------------------------------+
| NULL |
+---------------------------------------------+