SQLDSQL 기본NULL 비교난이도 3MCQ

SQLD NULL 비교 기출문제 #3578

문제

업체 테이블에 p, q, r 데이터가 있고 물품은 각 30, 40, 50개가 있다. 쿼리문 수행 결과로 옳은 것은?

SQL
SELECT COUNT(DISTINCT 물품) FROM 업체; SELECT COUNT(*) FROM 업체 WHERE 물품 IN ('p', NULL);

① 3, 0 ② 3, 30 ③ 3, 오류가 발생한다. ④ 3, NULL

정답

2

해설

정답: 2. DISTINCT 물품은 p, q, r의 3개이고, 물품 IN ('p', NULL)은 물품이 p인 행만 TRUE가 되어 30건이 조회된다.

오답 풀이

  • 1번: IN 목록에 NULL이 있어도 p와 일치하는 행은 조회된다.
  • 2번: 서로 다른 물품 수 3개, p인 행 30건으로 옳다.
  • 3번: IN 목록에 NULL이 포함되어도 문법 오류는 아니다.
  • 4번: COUNT(*)는 조건을 만족하는 행 수를 반환하며 NULL을 반환하지 않는다.

보충 개념 IN ('p', NULL)은 값이 'p'이면 TRUE이고, 다른 값은 NULL 비교 때문에 UNKNOWN이 될 수 있다. WHERE 절에서는 TRUE인 행만 반환된다.

SQLD 시험 준비 가이드

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

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

[SQLD] NULL 비교 SQL 기본 기출 #3578 | 문어CBT