[Oracle] 편리한 조건함수 DECODE 함수 사용법 & 예제

오라클에서 조건을 주는 방법은 여러가지가 있습니다. 대표적으로는 CASE문 IF문이 있는데 이런 조건문을 사용하게 되면 쿼리문이 쓸데없이 길어질요소가 존재합니다. 하지만 조건이 동등문(=)일경우에 간단하게 사용할 수 있는 DECODE함수라는것이 있습니다. 이번 포스팅에서는 오라클에서 제공하는 DECODE함수를 통해 간결하게 조건문을 주는 방법에 대해 알아보도록 하겠습니다. 경우에 따라서는 DECODE함수를 중첩해서 쓰거나 서브쿼리와 같이 사용하셔도 됩니다. DECODE함수는 어제 포스팅했었던 NVL함수와 마찬가지로 오라클에서만 존재하는 함수이므로 MY_SQL이나 MS_SQL과의 호환을 염두하신다면 사용을 피하셔야합니다.


사용법

DECODE(컬럼,조건,TRUE 결과값,FALSE 결과값)


예제

--TYPE 1이면 정규직 2면 비정규직
SELECT 
DECODE(TYPE,1,'정규직','비정규직') AS TYPE
FROM
EMP_TABLE


--주민등록번호(MY_NUM)이(가) 1또는3으로 시작하면 남자 아니면 여자
SELECT 
DECODE(SUBSTRING(MY_NUM,0,1),1||3,'남','여') AS GENDER
FROM
EMP_TABLE


댓글

Designed by JB FACTORY