하위 쿼리 연산자¶
이 항목에서는 Snowflake에서 지원되는 하위 쿼리 연산자에 대한 참조 정보를 제공합니다. 하위 쿼리는 다른 쿼리 내의 쿼리입니다.
이 항목의 내용:
ALL / ANY¶
ALL 및 ANY 키워드를 사용해 (두 개 이상의 행을 반환할 수 있는) 하위 쿼리로 생성된 값에 비교 연산자를 적용할 수 있습니다.
구문¶
<expr> comparisonOperator { ALL | ANY} ( <query> )
여기서:
comparisonOperator ::= { = | != | > | >= | < | <= }
사용법 노트¶
예¶
직원이 없는 부서를 찾으려면 != ALL
하위 쿼리를 사용하십시오.
SELECT department_id FROM departments d WHERE d.department_id != ALL (SELECT e.department_id FROM employees e);
[ NOT ] EXISTS¶
EXISTS 하위 쿼리는 WHERE 또는 HAVING 절이나 부울 식에서 작동하는 모든 함수에서 나타날 수 있는 부울 식입니다.
EXISTS 식은 하위 쿼리로 생성되는 행이 있는 경우 TRUE로 계산됩니다.
NOT EXISTS 식은 하위 쿼리로 생성되는 행이 없는 경우 TRUE로 계산됩니다.
구문¶
[ NOT ] EXISTS ( <query> )
사용법 노트¶
상관 관계가 있는 EXISTS 하위 쿼리는 현재 WHERE 절에서만 지원됩니다.
상관 관계가 있는 EXISTS 하위 쿼리는 OR 연산자에 대한 인자로 나타날 수 없습니다.
상관 관계가 없는 EXISTS 하위 쿼리는 부울 식이 허용되는 곳이면 어디서든 지원됩니다.
예¶
직원이 없는 부서를 찾으려면 상관 관계가 있는 NOT EXISTS 하위 쿼리를 사용하십시오.
SELECT department_id FROM departments d WHERE NOT EXISTS (SELECT 1 FROM employees e WHERE e.department_id = d.department_id);
[ NOT ] IN¶
IN 및 NOT IN 연산자는 하위 쿼리에서 반환하는 값에 식이 포함되어 있는지 검사합니다.
구문¶
<expr> [ NOT ] IN ( <query> )
사용법 노트¶
IN은
= ANY
의 축약형으로, ANY 하위 쿼리와 똑같은 제한 사항이 적용됩니다.NOT IN은
!= ALL
의 축약형으로, ALL 하위 쿼리와 똑같은 제한 사항이 적용됩니다.[NOT] IN
은 하위 쿼리를 포함하지 않는 식에서 연산자로 사용할 수도 있습니다. 자세한 내용은 [ NOT ] IN 섹션을 참조하십시오.
예¶
(이 항목의 앞부분에 있는) != ALL
하위 쿼리 예와 똑같은 NOT IN 하위 쿼리를 사용합니다.
SELECT department_id FROM departments d WHERE d.department_id NOT IN (SELECT e.department_id FROM employees e);