티스토리 뷰

오라클 함수 (DECODE, CASE)

 

오라클 함수중 DECODE 및 CASE 에 대해서 알아보도록 하겠습니다.

해당 함수들은 C언어에서 ELSE IF와 동일한 기능을 제공하는 함수들입니다.

 


간단한 예제를 통해서 DECODE 사용방법을 알아보도록 하겠습니다.

 


부서코드가 10인경우 인사부서가, 20인경우 고객부서가, 그외의 경우 기타부서가 리턴 됩니다.

 


DECODE 문에 수식을 활용하여 사용할 수도 있습니다.

아래 예제를 통해 알아보도록 하겠습니다.

 


부서코드가 10인경우 급여(SAL)항목에 5% 인상한 금액이,

 20인경우 급여(SAL)항목에 15% 이상한 금액이, 그외는 인상없는 금액이 리턴 됩니다.

 

CASE문은 DECODE 함수와 유사하게 여러 가지 경우에 대해서 선택 가능하도록 합니다.

차이점은 DECODE 함수는 조건이 일치하는 경우에 대해서만 적용됩니다.

즉 '=' 연산자에 대허서만 조건 체크를 할 수 있습니다.

반면, CASE 함수는 다양한 비교 연산자를 이용하여 조건을 제시할 수 있습니다.



 

예제를 통해서 CASE 함수 사용방법을 알아보도록 하겠습니다.

 


부서코드가 10, 11 인경우 인사부서가, 20인경우 고객부서가, 그외의 경우 기타부서가 리턴 됩니다.

 

CASE 문에 수식을 활용하여 사용할 수도 있습니다.

아래 예제를 통해 알아보도록 하겠습니다.



 

부서코드가 10, 11인경우 급여(SAL)항목에 5% 인상한 금액이,

20인경우 급여(SAL)항목에 15% 이상한 금액이, 그외는 인상없는 금액이 리턴 됩니다.

 

CASE문에 IN을 사용한 예제를 보여드렸습니다.

하지만 연산 , IS NULL 및 오라클에서 제공하는 수식이 모두 가능합니다.

(예> COL1 = COL2, COL1/COL2 > 1, MOD(COL,2) = 0)

 

DECODE 및 CASE 함수에 대해서 알아보았습니다.

DECODE는 = 연산시 간단하게 처리 할 수 있으며, CASE문은 복잡한 수식을 적용하는데 적합할것 같습니다.



댓글