티스토리 뷰

MODEL/ORACLE

[ORACLE] DECODE & CASE 함수

찰떡쿠키부스트 2017. 11. 15. 17:48

 

 

DECODE 함수

​-조건에 해당하는 값을 추출하고자 할 때 주로 사용

ex)

부서번호가 10이면 ACCOUNTING, 20이면 RESEARCH, 30이면 SALES
 나머지는 OPERATIONS를 출력

 SELECT deptno, DECODE(deptno, 10 , 'ACCOUNTING' ,
                              20 , 'RESEARCH' ,
                              30 , 'SALES', 'OPERATIONS') name
  FROM dept;

 DEPTNO NAME
 ------ ----------
     10 ACCOUNTING
     20 RESEARCH
     30 SALES 
     40 OPERATIONS

 

DECODE(VALUE, IF1, THEN1, IF2, THEN2...)

DECODE(VALUE,'조건',같으면실행,다르면실행)

CASE

-DECODE 와 비슷한데 좀 더 확장형

 (DECODE는 동등비교 (같다) 만 가능하지만 CASE는 비교조건사용가능.

   그리고 DECODE는 오라클함수고 CASE는 표준SQL 즉 다른 DBMS에서도 사용가능)

[SY]

기본형CASE (동등비교)

CASE 대상값 WHEN 비교값1 THEN 처리

     WHEN 비교값2 THEN 처리2

     ...

     ELSE 디폴드 처리

 END ​  ​ 



검색형CASE (동등비교)

CASE    WHEN 비교조건1 THEN 처리

     WHEN 비교조건2 THEN 처리2

     ...

     ELSE 디폴드 처리

 END ​  ​ 

댓글