Оператор 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 │
└─────────┘