DECODE 함수는 오라클 쿼리에서 가장 많이 사용하는 함수 중 하나이다. 표준 SQL 함수가 아니라서 사용을 꺼려하기도 하지만 잘 사용하면 아주 편하기 때문에 유용하다. 최근에는 CASE WHEN 구문 사용을 많이 권장하기도 한다.
DECODE 함수는 프로그래밍에서의 if else 와 비슷한 기능을 수행한다. 간단한 사용방법은 아래와 같다.
예) DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3..........)
WITH temp AS (
SELECT 'M' gender FROM dual UNION ALL
SELECT 'F' gender FROM dual UNION ALL
SELECT 'X' gender FROM dual
)
SELECT gender
, DECODE(gender, 'M', '남자', 'F', '여자', '기타') gender2
FROM temp
--아래와 같은 의미로 사용
if (gender == "M") {
return "남자";
} else if (gender == "F") {
return "여자";
} else {
return "기타";
}