Oracle 기준으로 다음 SQL의 실행 결과로 옳은 것은?[운송]운송… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

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

[운송]

운송번호도착일실중량예상중량
T12026-05-02120120
T2(null)(null)80
T32026-05-0395100
T4(null)(null)(null)
SELECT 운송번호,
       NVL2(도착일, '완료', '운송중') AS 상태,
       COALESCE(실중량, 예상중량, 0) AS 중량,
       NULLIF(실중량, 예상중량) AS 비교
  FROM 운송
 ORDER BY 운송번호;
1
운송번호상태중량비교
T1완료120(null)
T2운송중80(null)
T3완료95100
T4운송중0(null)
2
운송번호상태중량비교
T1완료120(null)
T2운송중0(null)
T3완료9595
T4운송중0(null)
3
운송번호상태중량비교
T1완료120(null)
T2운송중80(null)
T3완료9595
T4운송중0(null)
4
운송번호상태중량비교
T1완료120120
T2운송중80(null)
T3완료95(null)
T4운송중0(null)
해설

NULLIF(a, b) 는 두 값이 같으면 NULL, 다르면 첫 번째 인수를 돌려주므로 T1 은 NULL, T3 은 95 다.

NVL2 는 도착일이 있으면 완료, 없으면 운송중을 고르고, COALESCE 는 왼쪽부터 처음 NULL 이 아닌 값을 골라 T2=80, T4=0 이 된다.

  • 값이 다를 때 두 번째 인수 100 을 돌려주지는 않는다.
  • 같은 값이면 그 값이 아니라 NULL 이 되고, 다른 값이면 NULL 이 아니다.
  • T2 는 예상중량 80 이 먼저 NULL 이 아니므로 0 까지 가지 않는다.

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

이어서 풀어보기

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