Перейти к основному содержимому
Перейти к основному содержимому

EXISTS

Оператор EXISTS проверяет, сколько записей находится в результате подзапроса. Если он пустой, то оператор возвращает 0. В противном случае он возвращает 1.

EXISTS также может быть использован в клаузе WHERE.

подсказка

Ссылки на таблицы и колонки основного запроса не поддерживаются в подзапросе.

Синтаксис

EXISTS(subquery)

Пример

Запрос для проверки существования значений в подзапросе:

SELECT EXISTS(SELECT * FROM numbers(10) WHERE number > 8), EXISTS(SELECT * FROM numbers(10) WHERE number > 11)

Результат:

┌─in(1, _subquery1)─┬─in(1, _subquery2)─┐
│                 1 │                 0 │
└───────────────────┴───────────────────┘

Запрос с подзапросом, возвращающим несколько строк:

SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);

Результат:

┌─count()─┐
│      10 │
└─────────┘

Запрос с подзапросом, который возвращает пустой результат:

SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);

Результат:

┌─count()─┐
│       0 │
└─────────┘