SQLDSQL 활용NOT IN난이도 3MCQ

SQLD NOT IN 기출문제 #3837

문제

아래 SQL 결과로 알맞은 것은?

<TAB_A>

COL1
1
2
NULL

<TAB_B>

COL2
1
2
3
SQL
SELECT COUNT(*) FROM TAB_B WHERE COL2 NOT IN (SELECT COL1 FROM TAB_A);

① NULL ② 0 ③ 1 ④ 전체 건수

정답

2

해설

정답: 2. NOT IN의 목록에 NULL이 포함되면 비교 결과가 UNKNOWN이 되어 조건을 만족하는 행이 없어 COUNT(*) 결과는 0이다.

오답 풀이

  • 1번: COUNT(*)는 결과 행이 없어도 NULL이 아니라 0을 반환한다.
  • 2번: NULL이 포함된 NOT IN 조건 때문에 반환 행이 없다.
  • 3번: 3은 1,2와 다르지만 NULL과의 비교 때문에 UNKNOWN이 되어 제외된다.
  • 4번: 전체 건수가 반환되지 않는다.

보충 개념 NOT IN 서브쿼리 결과에 NULL이 있으면 의도와 달리 결과가 없을 수 있다. NULL 가능성이 있으면 NOT EXISTS를 고려하는 것이 안전하다.

SQLD 시험 준비 가이드

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

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

[SQLD] NOT IN SQL 활용 기출 #3837 | 문어CBT