다음 SQL 의 실행 결과로 옳은 것은?[예약]예약번호승객명편명1김하늘… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL 의 실행 결과로 옳은 것은?

[예약]

예약번호승객명편명
1김하늘KE101
2이하람OZ330
3박구름(null)
4최나래KE205
5정보라LJ007
6윤솔KE101

[결항편]

편명
OZ330
LJ007
SELECT 예약번호, 승객명
  FROM 예약
 WHERE 편명 NOT IN (SELECT 편명 FROM 결항편)
 ORDER BY 예약번호;
1
예약번호승객명
2이하람
5정보라
2
예약번호승객명
1김하늘
4최나래
6윤솔
3
예약번호승객명
4
예약번호승객명
1김하늘
3박구름
4최나래
6윤솔
해설

편명이 결항편 목록에 없는 예약 1·4·6만 남고, 편명이 NULL 인 예약 3은 비교 결과가 UNKNOWN 이라 NOT IN 조건을 통과하지 못한다.

NULL 과의 비교는 참도 거짓도 아니므로 NULL 행은 IN 과 NOT IN 어느 쪽에도 나오지 않는다. 서브쿼리 쪽에는 NULL 이 없으므로 나머지 행은 정상 비교된다.

  • 박구름까지 포함한 표는 NOT EXISTS 처럼 NULL 행을 남긴 결과이다.
  • 이하람·정보라만 있는 표는 IN 조건의 결과이다.
  • 행이 없는 표는 서브쿼리 결과에 NULL 이 있을 때의 상황이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 4회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기