SQLDSQL 기본난이도 3MCQ

SQLD SQL 기본 기출문제 #813

문제

다음 SQL의 실행 결과로 가장 적절한 것은?

테이블 MEMBERS의 데이터: STATUS: 'ACTIVE', 'INACTIVE', NULL, 'PENDING'

SQL
SELECT COUNT(*) FROM MEMBERS WHERE STATUS NOT IN ('ACTIVE', 'PENDING', NULL);

① 0건 ② 1건 ③ 2건 ④ 3건

정답

1

해설

NOT IN 절에 NULL이 포함되어 있으면, 모든 행에 대해 조건이 UNKNOWN으로 평가됩니다. SQL의 3VL(3-Valued Logic)에서 WHERE 절은 TRUE인 행만 반환하므로, UNKNOWN으로 평가되는 모든 행은 결과에서 제외됩니다. 따라서 어떤 행도 조건을 만족하지 않아 0건이 반환됩니다. ②③④는 NOT IN에서 NULL 처리 방식을 잘못 이해한 경우입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] SQL 기본 기출 #813 | sqldpass