반응형
오라클에서 DECODE는
값을 가지고 설정한 값과 비교해 맞으면 그 값이 나오게 되고
조건에 맞지 않을 시에도 값을 설정해 그 값이 나오게 할 수 있는데
프로그래밍 언어에서 유사한 부분을 꼽아보자면
if ~ else if ~ else 를 생각하면 이해가 바로 될 것이다
DECODE는 아래 코드처럼 사용하면 되는데
ORACLE DECODE 사용 시
DECODE('값','조건1','조건 1일시 값') -- 여기까지가 최소 필요
FROM TABLE;
DECODE('값','조건1','조건 1일시 값','조건2','조건 2일시 값', '조건에 맞는 값이 없을 시') AS DECODE_TEST_COLUMN2
FROM TABLE; -- 조건은 계속 추가 가능
이런 식으로 사용하는데 최소 필요한 부분은
상단의 DECODE('값', '조건', '조건 1일시 값') 부분인데
받아올 값과, 조건 하나, 조건에 맞을 시 나올 값이 필요하다
조건은 ,'조건3', '조건 3일시 값' 이런 식으로 계속 추가 가능하고
조건에 맞는 값이 없을 시 나올 값도 꼭 넣지 않아도 된다
실 사용 예제는 이런 식으로 사용하게 되는데
아래에서는 테이블을 DUAL을 사용해서 'Cattle' 이라는 고정값을 줬지만
실 사용시에는 저 위치에 컬럼을 넣게 될 것이다
SELECT DECODE('Cattle','Cattle','음메','Pig','꿀꿀','else') SAY FROM DUAL
-- SELECT 시 --
SAY
음메
보면 들어오는 값이 Cattle인데
여기서 이 값이 Cattle일 경우에는 '음메' 가 나오고
Pig일 경우에는 '꿀꿀'이 나오고
Cattle도 Pig도 아닐 경우에는 'else' 가 나오게 된다
DECODE 문으로 아래 예제처럼 NULL 처리도 가능하기는 하지만
SELECT DECODE('',NULL,'NULL입니다') SAY FROM DUAL
-- 출력 시 --
SAY
NULL입니다
NVL을 사용하는 것이 맞기 때문에
DECODE를 쓰지 말고 아래 링크를 참조해 NVL을 사용할 것을 권장한다
반응형
'SQL > Oracle' 카테고리의 다른 글
INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL) 예제부터 차이까지 (0) | 2019.12.05 |
---|---|
오라클 NVL, NVL2 사용방법 및 예제 (0) | 2019.10.17 |
오라클 TO_CHAR 사용방법 (0) | 2019.10.15 |
오라클 TO_DATE 사용방법 (0) | 2019.10.15 |
오라클 insert, update, delete, select 사용법 정리 (0) | 2019.10.14 |
댓글