T(col)에 1, 2, 3, NULL이 저장되어 있다. 다음 조건으로 조회했더니 3을 포함한 어떤 행도 반환되지 않았다. 그 이유로 가장 정확한 것은?
WHERE col NOT IN (1, 2, NULL)
정답 1번
NOT IN (1, 2, NULL)은 개념적으로 col<>1 AND col<>2 AND col<>NULL을 모두 만족해야 한다. 3을 대입하면 앞의 두 비교는 TRUE지만 3<>NULL은 UNKNOWN이므로 전체 결과도 UNKNOWN이다. WHERE 절은 TRUE인 행만 남기기 때문에 3도 반환되지 않으며, col 자체가 NULL인 행 역시 비교 결과가 UNKNOWN이다. 하위 질의에서 목록을 만든다면 NULL을 제거하거나 업무 의미에 맞는 상관 NOT EXISTS를 사용해야 한다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-16