[SQL] 073. 서브 쿼리 사용하기3

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

NOT IN 연산자와 서브 쿼리를 사용한 예시를 살펴보자.

여기선 EMPNO(사원번호)가 MRG(관리자사원번호)가 아닌 경우 출력한다.

즉, 관리자가 아닌 사원을 출력한다.

한 가지 주의할 점은 서브 쿼리 내에 IS NOT NULL을 사용하지 않으면 결과가 출력되지 않을 수 있다.

만약 MGR이 (1, 2, NULL)인 경우,

WHERE EMPNO != 1 AND EMPNO != 2 AND != NULL로 식이 만들어지며 이 경우 전체가 NULL이 된다.

(NULL은 이퀄 연산자를 사용할 수 없다.)

-- 관리자가 아닌 사원 출력
SELECT ENAME
FROM EMP
WHERE EMPNO NOT IN (SELECT MGR
                    FROM EMP
                    WHERE MGR IS NOT NULL);

[결과]

ENAME
ADAMS
WARD
ALLEN
JAMES
SMITH
MILLER
MARTIN
TURNER

Tags:

Categories:

Updated:

Leave a comment