DECODE
DECODE(컬럼, 조건1, 결과1,
조건2, 결과2,
...
조건N, 결과N)
컬럼이 여러 조건에 대한 각 결과를 반환한다.
SELECT EMP_NM,
DEPT_ID,
DECODE(DEPT_ID, '10', '인사부', '20', '경제부') AS DEPT_NM
FROM EMP_INFO
결과
EMP_NM |
DEPT_ID |
DEPT_NM |
김우리 |
10 |
인사부 |
김나라 |
20 |
경제부 |
CASE
CASE 표현식 WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 결과
END
DECODE와 유사하지만
DECODE는 조건이 일치하는 경우에만 적용된다.
CASE는 다양한 조건과 비교를 하는 경우에도 적용된다.
SELECT EMP_NM,
DEPT_ID,
CASE
WHEN DEPT_ID='10' THEN '인사부'
WHEN DEPT_ID='20' THEN '경제부'
ELSE '미정'
END DEPT_NM
FROM EMP_INFO
결과
EMP_NM |
DEPT_ID |
DEPT_NM |
김우리 |
10 |
인사부 |
김나라 |
20 |
경제부 |
김만세 |
30 |
미정 |
NVL
NVL(컬럼,NULL일때의 값)
컬럼이 NULL일때 NULL일때의 값을 반환
SELECT EMP_NM,
DEPT_ID,
NVL(DEPT_ID, '미정') AS DEPT_ID2
FROM EMP_INFO
결과
EMP_NM |
DEPT_ID |
DEPT_ID2 |
홍길동 |
|
미정 |
NVL2
NVL2(컬럼, NULL이 아닐때의 값, NULL일떄의 값)
NVL과 DECODE의 개념이 합쳐진 함수
컬럼이 NULL일떄와 NULL이 아닐때 각각의 값을 반환
SELECT EMP_NM,
DEPT_ID,
NVL2(DEPT_ID, '확정','미정') AS DEPT
FROM EMP_INFO
결과
EMP_NM | DEPT_ID | DEPT |
김우리 | 10 | 확정 |
홍길동 | 미정 |
NULLIF
NULLIF(표현식1, 표현식2)
표현식1의 값과 표현식2의 값이 동일하면 NULL을 반환
그렇지 않으면 표현식1을 반환
SELECT NULLIF('HAHA', 'HAHO')
FROM EMP_INFO
결과
HAHA
'IT' 카테고리의 다른 글
[오라클/ORACLE]INDEX 생성/삭제 (0) | 2017.04.26 |
---|---|
[오라클/ORACLE]DISTINCT (0) | 2017.04.21 |
[오라클/ORACLE]TNS 설정 (0) | 2017.04.20 |
[오라클/ORACLE]INSERT, UPDATE, DELETE 구문 (0) | 2017.04.19 |
[오라클/ORACLE]OVER() 함수 (0) | 2017.04.19 |