O operador EXISTS verifica quantos registros há no resultado de uma subconsulta. Se ele estiver vazio, o operador retornará 0. Caso contrário, retornará 1.
EXISTS também pode ser usado em uma cláusula WHERE.
Sintaxe
EXISTS(subquery)Exemplo
Consulta para verificar a existência de valores em uma subconsulta:
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 │
└───────────────────┴───────────────────┘Consulta com uma subconsulta que retorna várias linhas:
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);┌─count()─┐
│ 10 │
└─────────┘Consulta com uma subconsulta que retorna um resultado vazio:
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);┌─count()─┐
│ 0 │
└─────────┘