NULLIF와 COALESCE는 특정한 경우의 CASE 수식을 처리하기 위한 간단한 형태로 조건 수식의 특정한 형태로 사용된다.
NULLIF 문은 두 수식을 비교하여 수식이 같으면 NULL을 반환하고, 그 외에는 첫 번째 인자 값을 반환한다.
NULLIF(a, b)는 다음의 CASE 문장과 같은 의미를 가진다.
CASE
WHEN a = b THEN NULL
ELSE a
END
COALESCE 문은 같은 데이터 타입을 가지는 수식 두 개를 인자로 받아서 NULL이 아닌 첫 번째 값을 반환하며, 모든 값이 NULL이면 NULL을 반환한다. COALESCE(a, b)는 다음의 CASE 문장과 같은 의미를 가진다.
CASE WHEN a IS NOT NULL
THEN a
ELSE b
END
COALESCE 문장에 두 개 보다 많은 수식을 명시하는 것은 CASE 문장에 THEN 절을 추가하는 것과 같은 의미를 지닌다. 수식 리스트에서 순차적으로 NULL 값인지를 조사하여 NULL이 아닌 값을 만날 때까지 진행한다. 더 이상 수식이 남아 있지 않으면 COALESCE는 NULL을 반환한다.
SELECT host_year, NULLIF(mascot, 'HODORI') FROM olympic;
SELECT host_year, COALESCE(mascot, 'Not Exist') FROM olympic;