본문 바로가기

Dev. Database/Oracle

CASE WHEN ~ THEN ~ ELSE END


DECODE 문이 IF문이라면, CASE문은 SWITCH 문이다.

[형식]
CASE
 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1
                                WHEN 조건식2 THEN 결과2
                                                 .......
                                WHEN 조건식n THEN 결과n 
                                ELSE 결과
             END


[예제]

SELECT CASE WHEN SALARY <= 30000000 THEN 'D' 
            WHEN SALARY BETWEEN 30000001 AND 50000000 THEN 'C'
            WHEN SALARY BETWEEN 50000001 AND 70000000 THEN 'B'
            WHEN SALARY > 70000000 THEN 'A' END AS SALARY,
            COUNT(*) AS CNT
FROM TEMP
GROUP BY
CASE WHEN SALARY <= 30000000 THEN 'D' 
            WHEN SALARY BETWEEN 30000001 AND 50000000 THEN 'C'
            WHEN SALARY BETWEEN 50000001 AND 70000000 THEN 'B'
            WHEN SALARY > 70000000 THEN 'A' END
ORDER BY SALARY ASC            
;