예약 테이블에 대해 다음 SQL 을 실행한 결과로 옳은 것은?예약예약번… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
예약 테이블에 대해 다음 SQL 을 실행한 결과로 옳은 것은?

예약

예약번호인원확정인원메모
144창가
23(null)(null)
3(null)(null)(null)
452유아
SELECT 예약번호,
       COALESCE(확정인원, 인원, 0) AS P,
       NULLIF(인원, 확정인원) AS Q,
       CASE WHEN 메모 IS NULL THEN 'N' ELSE 'Y' END AS R
  FROM 예약
 ORDER BY 예약번호;
1
예약번호PQR
14(null)Y
233N
30(null)N
425Y
2
예약번호PQR
14(null)Y
23(null)N
30(null)N
425Y
3
예약번호PQR
14(null)Y
233N
30(null)N
455Y
4
예약번호PQR
144Y
233N
30(null)N
425Y
해설

COALESCE는 왼쪽부터 처음 만나는 NULL 아닌 값을 돌려주어 예약번호 4 행은 확정인원 2, 두 값이 모두 NULL 인 예약번호 3 행은 0이 된다.

NULLIF(a, b)는 두 값이 같을 때만 NULL 이고 다르면 a 를 돌려주므로 4와 4가 같은 첫 행만 NULL, 확정인원이 NULL 인 둘째 행은 3이다.

  • 첫 행의 Q 를 4로 본 것은 같을 때 NULL 이 된다는 규칙을 뒤집은 것이다.
  • 둘째 행의 Q 를 NULL 로 본 것은 NULL 과의 비교를 같음으로 오해한 것이다.
  • 마지막 행의 P 를 5로 본 것은 COALESCE 인자 순서를 놓친 것이다.

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

이어서 풀어보기

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