연체일 1일당 연체료 100원이며, 연체일이 NULL 인 회원도 연체료… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
연체일 1일당 연체료 100원이며, 연체일이 NULL 인 회원도 연체료가 0 으로 나오도록 하려 한다. 다음 결과를 얻기 위해 ( ㉠ )에 들어갈 식으로 옳은 것은?

[회원]

회원번호이름연체일
M1윤채원3
M2석도하(null)
M3편예린0
M4진우현10
M5고아라(null)
SELECT 회원번호, ( ㉠ ) AS 연체료
  FROM 회원
 ORDER BY 회원번호;

[원하는 결과]

회원번호연체료
M1300
M20
M30
M41000
M50
1
NULLIF(연체일, 0) * 100
2
COALESCE(연체일 * 100, NULL)
3
COALESCE(연체일, 0) * 100
4
CASE WHEN 연체일 IS NULL THEN 0 END * 100
해설

COALESCE(연체일, 0) 이 NULL 을 0 으로 바꾼 뒤 100 을 곱하므로 M2·M5 는 0, 나머지는 300·0·1000 이 되어 원하는 결과와 같다.

NULL 에 곱셈을 먼저 하면 NULL 이 전파되므로 NULL 치환은 연산 전에 해야 한다.

  • NULLIF 는 0 인 M3 까지 NULL 로 만들어 연체료가 비게 된다.
  • 대체값이 NULL 인 COALESCE 는 NULL 행을 그대로 NULL 로 둔다.
  • ELSE 없는 CASE 는 연체일이 있는 행을 NULL 로 만든다.

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

이어서 풀어보기

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