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 │
└─────────┘