홈 › SQL 중급 › 05 / 11

조건 로직: CASE·DECODE·IIF

섹션 6진행 0 / 11

6. 정리

CASE 는 단순(동등 비교)·검색(독립 조건) 두 형태가 있고, WHEN 조건은 위에서부터 순서대로 평가되어 첫 참에서 멈춥니다. ELSE 를 생략하면 결과는 NULL 이고, 모든 분기의 결과 타입은 서로 호환돼야 합니다. SUM(CASE ...)·COUNT(CASE ...) 는 행을 상태별 열로 펼치는 조건부 집계에, UPDATE 안의 CASE 는 조건별로 다른 값을 한 문장에 반영하는 데 씁니다.

DECODE 는 Oracle·Tibero 전용이며 NULL 과 NULL 을 같다고 보고 일치시키는 점이 단순 CASE 와 다릅니다. MySQL 의 IF(), MSSQL 의 IIF·CHOOSE 는 모두 검색 CASE 를 함수 하나로 줄인 편의 함수이고, 이 레슨의 H2 환경에서는 셋 다 지원되지 않아 CASE 로 옮겨 확인했습니다. 여러 DB 를 오가야 한다면 이런 DB 전용 함수보다 표준 CASE 를 기본으로 쓰는 편이 이식성이 좋습니다.