DATABASE

[ORACLE] DECODE 와 CASE

오래오래 늘 함께 2018. 11. 5. 10:43
  • DECODE ( 값, IF1, THEN1, IF2, THEN2 ...)
: 값이 IF1일 경우 THEN1 값을 반환하고, 값이 IF2일 경우 THNE2 값을 반환한다.

  DECODE함수 안에 DECODE 함수 중첩으로 사용가능

select GRADE, DECODE(GRADE, 908, '2017년', 907, '2016년', 906, '2015년', 907, '2014년') YEAR
from IV_APMAN
where GRADE >= 905
group by GRADE;



  • CASE
- CASE 변수 when 조건값 then 결과값 ... END

select GRADE, 
  CASE GRADE 
        when 908 then '2017년'
        when 907 then '2016년'
        when 906 then '2015년'
        when 905 then '2014년'
       END as YEAR
from IV_APMAN
where GRADE >= 905
group by GRADE;

- CASE when 조건문 then 결과값 ... END

select GRADE,
        CASE when GRADE = 908 then '2017년'
        when GRADE = 907 then '2016년'
        when GRADE = 906 then '2015년'
        when GRADE = 905 then '2014년'
       END as YEAR 
from IV_APMAN
where GRADE >= 905
group by GRADE;