Freigeben über


exists-Funktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt TRUE zurück, wenn func für ein Element in expr zutrifft oder query mindestens eine Zeile zurückgibt.

Syntax

exists(expr, func)
exists(query)

Argumente

  • expr: Ein ARRAY-Ausdruck.
  • func: Eine Lambdafunktion.
  • query: Eine beliebige Abfrage.

Gibt zurück

Einen BOOLESCHEN Wert.

Die Lambdafunktion muss BOOLEAN-Wert ergeben und einen Parameter verwenden, der ein Element im Array darstellt.

exists(query) kann nur in der WHERE-Klausel und einigen anderen speziellen Fällen verwendet werden.

Beispiele

> 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