dev/DB

DECODE, CASE WHEN

amuse1991 2019. 3. 15. 13:31

DECODE, CASE WHEN 둘 다 조건에 해당하는 값을 얻고자 할 때 사용(switch case 문 같은 기능)


DECODE

DECODE(expr, cond1, val1, cond2, val2 ..., default_val)

SELECT DEPTNO, 

DECODE(DEPTNO, 10, 'ACCOUNTING',

  20, 'RESEARCH',

  30, 'SALES',

   'NO_DEPT') DEPTNAME

FROM DEPT;


CASE ~ WHEN ~ END

CASE expr 

WHEN cond1 THEN val1

WHEN cond2 THEN val2

ELSE default_val

END

SELECT DEPTNO,

CASE DEPTNO

WHEN 10 THEN 'ACCOUNTING'

WHEN 20 THEN 'RESEARCH'

WHEN 30 THEN 'SALES'

ELSE 'NO_DEPT'

END as DEPTNAME

FROM DEPT;