본문 바로가기

나는 엔지니어/ORACLE

DECODE / CASE WHEN

DECODE 는 equal연산 밖에 안된다.

equal이외의 연산을 사용할때엔 CASE WHEN을 사용한다.


.DECODE

Select

  Ename,

  Dno,

  Decode(Dno,

              10,'ACCOUNTING',

              20,'Research',

              30,'sales',

              40,'operations',

              'Default') As Dname

From Employee

order by dno;


default값을 설정하지 않으면 null이 설정된다.

디폴트값을 입력하도록 해주자..( 오류의 위험.)


Select

  Ename,

  Dno,

  Case

      When Dno >= 40 Then 'OPERATIONS'

      When Dno >= 30 Then 'SALES'

      When Dno >= 20 Then 'RESEARCH'

      When Dno >= 10 Then 'ACCOUNTING'

      ELSE 'DEFAULT'

      END

From Employee

order by dno;