SQL의 if/elif/else
SELECT list 안에서 조건을 표현할 수 있는 건 CASE WHEN뿐이야. 모양은 둘이고.
- Simple CASE —
CASE col WHEN v1 THEN r1 WHEN v2 THEN r2 ELSE r3 END. 컬럼 하나를 값과 맞춰볼 때 써. - Searched CASE —
CASE WHEN cond1 THEN r1 WHEN cond2 THEN r2 ELSE r3 END. 아무 boolean 조건이나 넣을 수 있어서 훨씬 유연해. 열에 아홉은 이걸 쓰게 돼.
Tip: 집계 함수 안에 CASE를 넣으면 힘이 확 세져.
sum(CASE WHEN status='paid' THEN total END) 하나면 subquery 없이 조건부 합계가 나오거든. 보고용 query라면 거의 빠짐없이 등장하는 패턴이야.