NULLIF와 IIF
Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨 — 27개 중 4번째.
작고 유용한 두 가지 조건부 헬퍼를 더 소개합니다.
NULLIF(a, b)는 a = b일 때 NULL을 반환하고, 그렇지 않으면 a를 반환합니다. 전형적인 사용 사례는 0으로 나누는 것을 방지하는 것입니다:
SELECT total / NULLIF(count, 0) AS average
FROM statscount가 0이면 에러 대신 NULL을 얻습니다.
IIF(cond, a, b)는 CASE WHEN cond THEN a ELSE b END의 두 분기 단축형입니다. 선택지가 두 가지일 때 이것을 사용하고, 분기가 더 많을 때는 CASE를 사용하세요.
챌린지
쉬움사용 가능한 테이블 및 컬럼:
<strong>matches</strong>:<strong>id</strong>,<strong>shots</strong>,<strong>goals</strong>
각 경기(match)에 대해 다음을 반환하세요:
idconversion:goals * 1.0 / shots, 단shots가0인 경우NULL(NULLIF를 사용하세요)verdict:goals > 0일 때'win', 그렇지 않으면'no goals'(IIF를 사용하세요)
id를 기준으로 정렬하세요.
치트 시트
NULLIF(a, b)는 a = b일 때 NULL을 반환하고, 그렇지 않으면 a를 반환합니다. 0으로 나누는 것을 방지하는 데 유용합니다:
SELECT total / NULLIF(count, 0) AS average
FROM statsIIF(cond, a, b)는 두 개의 분기를 가진 CASE문의 단축형입니다:
SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matches직접 해보기
SELECT id,
-- NULLIF를 사용한 변환
-- IIF를 사용한 판정
FROM matches
ORDER BY id
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.