共用方式為


exists函式

適用於: 核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

如果 funcexpr 任何專案為 true,或 query 至少傳回一個數據列,則傳回 true。

語法

exists(expr, func)
exists(query)

引數

  • expr:ARRAY 表達式。
  • func:Lambda 函式。
  • query:任何 查詢

傳回

布爾值。

Lambda 函式必須產生布爾值,並在一個參數上運作,該參數代表陣列中的元素。

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