次の方法で共有


exists 関数

適用対象: 「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

expr 内の任意の要素に対して func が true の場合、または query が 1 行以上返す場合は true を返します。

構文

exists(expr, func)
exists(query)

引数

  • expr: ARRAY 式。
  • func: ラムダ関数。
  • query: 任意のクエリ

戻り値

BOOLEAN。

ラムダ関数は、ブール値を生成し、配列内の要素を表す 1 つのパラメーターに対して動作する必要があります。

exists(query) は、WHERE 句および他のいくつかの特定のケースでのみ使用できます。

> SELECT exists(array(1, 2, 3), x -> x % 2 == 0);
 true
> SELECT exists(array(1, 2, 3), x -> x % 2 == 10);
 false
> SELECT exists(array(1, NULL, 3), x -> x % 2 == 0);
 NULL
> SELECT exists(array(0, NULL, 2, 3, NULL), x -> x IS NULL);
 true
> SELECT exists(array(1, 2, 3), x -> x IS NULL);
 false

> SELECT count(*) FROM VALUES(1)
   WHERE exists(SELECT * FROM VALUES(1), (2), (3) AS t(c1) WHERE c1 = 2);
  1
> SELECT count(*) FROM VALUES(1)
   WHERE exists(SELECT * FROM VALUES(1), (NULL), (3) AS t(c1) WHERE c1 = 2);
  0
> SELECT count(*) FROM VALUES(1)
     WHERE NOT exists(SELECT * FROM VALUES(1), (NULL), (3) AS t(c1) WHERE c1 = 2);
  1