728x90
반응형
1. NULL을 다른 값으로 변환하는 NVL 함수
NVL(DATA1, DATA2)
// DATA1에는 NULL을 포함하는 컬럼 또는 표현식, DATA2에는 NULL을 대체하는 값 기술
// DATA1과 DATA2는 반드시 데이터 타입이 일치해야 함
NVL(COMM, 0) // COMM 컬럼의 NULL을 '0'으로 변환
NVL(HIREDATE, TO_DATE('2017/5/5', 'YYYY/MM/DD') // HIREDATE컬럼의 NULL을 '2017/5/5'로 변환
NVL(JOB, '매니저') // JOB 컬럼의 NULL을 '매니저'로 변환
# NVL2 함수
DATA1을 검사하여 그 결과가 NULL이 아니면 DATA2를 반환하고, NULL이면 DATA3 반환
NVL2(DATA1, DATA2, DATA3)
# NULLIF 함수
두 표현식을 비교하여 동일한 경우 NULL을 반환하고, 동일하지 않으면 첫 번째 표현식 반환
NULLIF(DATA1, DATA2)
# COALESCE 함수
인수 중에서 NULL이 아닌 첫 번째 인수 반환
COALESCE(DATA1, DATA2, ... , DATA-N)
// DATA1이 NULL이 아니면 DATA1을 반환
// DATA1이 NULL이고, DATA2가 NULL이 아니면, DATA2 반환
// DATA1부터 DATA-N-1까지의 값이 NULL이고, DATA-N이 NULL이 아니면, DATA-N 반환
SELECT COALESCE(COMM, SAL, 0)
FROM EMP
ORDER BY DEPTNO;
2. DECODE 함수
SWITCH CASE문과 같은 기능으로 여러가지 경우에 대해서 선택
DECODE (표현식, 조건1, 결과1,
조건2, 결과2,
조건3, 결과3,
기본결과n
)
3. CASE 함수
IF ELSE와 유사한 구조로 조건에 따라 서로 다른 처리가 가능한(여러 가지 경우에 대해서 하나를 선택) 함수이고, DECODE보다 확장된 기능
DECODE 함수는 조건이 일치(=)하는 경우만 적용하지만, CASE 함수는 다양한 비교 연산자를 이용하여 조건을 제시할 수 있고, 범위 지정할 수 있음
CASE 비교대상값 WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
WHEN 조건3 THEN 결과3
ELSE 결과n
END
728x90
반응형
'Database > Oracle' 카테고리의 다른 글
Oracle。그룹 함수 (0) | 2017.07.12 |
---|---|
Oracle。시퀀스(Sequence) (0) | 2017.06.17 |
Oracle。형 변환 함수와 오라클 주요 함수 2 (0) | 2017.06.07 |
Oracle。DUAL 테이블과 오라클 주요 함수 1 (0) | 2017.06.05 |
Oracle。ORDER BY 절과 집합 연산자 (0) | 2017.06.03 |