DECODE문은 두가지 유형으로 사용된다.
'조건', 'IF', TRUE, FALSE
'조건', 'IF1', TRUE, 'IF2', TRUE ,'IF3' TRUE
1 2 3 4 5 6 7 | SELECT DECODE('조건2', '조건1', '결과1' , '조건2', DECODE('조건2-1','조건2-2','결과2-1','결과2-2') , '조건3', '결과3') FROM DUAL -- 다음 DECODE문을 보면 IF1 TRUE1, IF2 TRUE2, IF3 TRUE3이 적용된것이고 -- 조건2로 DECODE문을 보면 IF TRUE FALSE로 조건이 맞지 않아 FALSE로 접근한 것을 알 수 있다. | cs |
실행결과
결과 2-2 가 나오는것을 확인할 수 있다.
DECODE문은 NVL과 NVL2의 문법형식을 합쳐놓은 것이라 생각하면 이해하기 쉽다.
1 2 3 | SELECT NVL('컬럼값이NULL일때','TRUE') , NVL2('컬럼값이NULL일때','TRUE','FALSE') FROM DUAL | cs |
CASE문과 비슷하지만 DECODE문은 더 복잡한 분기처리와 쿼리양을 줄일수 있다고 생각한다.
'전체 > Oracle' 카테고리의 다른 글
ORACLE WITH AS 사용방법 (0) | 2017.07.25 |
---|---|
ORACLE 데이터 컬럼 여러개로 나누기, 데이터 컬럼 줄내림(줄바꿈), 정규표현식 사용하기 (0) | 2017.07.24 |
ORACLE 무결성 제약 조건(NOT NULL, UNIQUE , PRIMARY KEY, FOREIGN KEY, CHECK) (0) | 2017.06.15 |
ORACLE CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME, DELETE, TRUNCATE, DROP (0) | 2017.06.15 |
클러스터 테이블, 언클러스터 테이블 (0) | 2017.06.15 |