DECODE는 오라클 쿼리에서 자주 사용되는 함수 중 하나입니다.
표준 SQL함수가 아니어서 ORACLE SQL에서만 사용가능합니다.
CASE WHEN 구문과 같은 역할을 하기 때문에 두 가지 함수를 모두 소개해보려고 합니다.
CASE WHEN
IF문과 같이 조건을 체크하여 해당 조건마다 리턴값을 지정해주는 역할입니다.
DECODE의 오라클 SQL에서만 사용될 수 있다는 한계를 보완해주는 표현식입니다.
- 형식
SELECT
CASE WHEN '조건 THEN '리턴값'
ELSE '해당조건이없는경우리턴값'
END AS '결과테이블 컬럼값'
FROM 테이블명
- 예제
SELECT
CASE
WHEN SAL_CD = '100001' THEN '기본급'
WHEN SAL_CD = '100002' THEN '상여금'
WHEN SAL_CD = '100003' THEN '특별상여금'
WHEN SAL_CD = '100004' THEN '야근수당'
WHEN SAL_CD = '100005' THEN '주말수당'
WHEN SAL_CD = '100006' THEN '점심식대'
WHEN SAL_CD = '100007' THEN '복지포인트'
ELSE '유효하지 않음'
END SAL_NM
, A.SAL_CD
, A.SAL_NM
FROM
TB_SAL A;
- 결과
DECODE
IF ELSE문과 같이 조건을 체크하여 해당 조건마다 리턴값을 지정해주는 역할입니다.
- 형식
SELECT
DECODE('비교할 컬럼명', '조건1', '결과1', '조건2', '결과2)
FROM 테이블명;
- 예제
SELECT
DECODE(A.SAL_CD, '100001', '기본급', '100002', '상여금', '기타') AS SAL_NM
,
A.SAL_CD,
A.SAL_NM
FROM
TB_SAL A;
- 결과
반응형