감면액이 NULL이면 감면이 없는 것으로 보고 청구액을 구하려 한다. … | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 6회
감면액이 NULL이면 감면이 없는 것으로 보고 청구액을 구하려 한다. 다음 결과를 얻기 위해 ( ㉠ )에 들어갈 식으로 옳은 것은?

[수납]

수납번호진료비감면액
1120002000
28000(null)
3150000
450005000
59000(null)
SELECT 수납번호, 진료비 - ( ㉠ ) AS 청구액
  FROM 수납
 ORDER BY 수납번호;

[원하는 결과]

수납번호청구액
110000
28000
315000
40
59000
1
COALESCE(감면액, 0)
2
SUM(감면액)
3
CASE 감면액 WHEN NULL THEN 0 END
4
NULLIF(감면액, 0)
해설

COALESCE(감면액, 0) 은 감면액이 NULL 이면 0 을 돌려주므로 수납 2·5는 진료비 전액이 청구액이 되고 나머지는 감면액을 뺀 값이 나온다.

NULL 을 그대로 빼면 NULL 전파로 청구액이 NULL 이 되므로 대체값 처리가 필요하다.

  • NULLIF 는 0 을 NULL 로 바꿔 수납 2·3·5 의 청구액이 NULL 이 된다.
  • SUM 은 집계 함수라 GROUP BY 없이 일반 열과 함께 쓰면 오류가 난다.
  • 단순 CASE 의 WHEN NULL 은 어떤 행과도 일치하지 않아 모든 청구액이 NULL 이 된다.

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

이어서 풀어보기

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