다음 SQL이 반환하는 T1의 값은?
T1(COL): 10, 20
T2(COL): 10, NULL
SELECT A.COL
FROM T1 A
WHERE NOT EXISTS (
SELECT 1 FROM T2 B WHERE B.COL = A.COL
);정답 2번
10은 T2에 일치 행이 있어 제외되고 20은 일치 행이 없어 반환된다. T2의 NULL은 B.COL=A.COL을 참으로 만들지 않으므로 NOT EXISTS 결과를 오염시키지 않는다. 미일치 행은 NOT EXISTS로 안전하게 찾을 수 있고, NOT IN은 서브쿼리 결과의 NULL 때문에 UNKNOWN이 될 수 있다.
콘텐츠 정보
- 자료 유형
- 편집복원
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-21