728x90
이슈)
오늘은 쿼리 분석 중에 NVL 함수가 있었는데, 인자가 한개가 아닌 두개가 있었다.
순간 뭐지.. 라고 고민을 했기에 이렇게 정리를 해본다... DECODE와 COALESECE 함수는 덤으로 정리한다!
NVL 함수
→ 컬럼 값이 NULL 일 경우, 지정한 값으로 치환해 준다. (NULL 이 아니면 원래 값을 그대로 반환)
NVL(컬럼명, 대체값)
※ 데이터 타입 일치 필요 : 첫번째 인자와 두번째 인자는 동일하거나 호환 가능한 타입이어야 함.
DECODE 함수
→ 조건 비교 후 값 반환 ( 간단한 IF-ELSE 또는 CASE WHEN 역할 가능)
DECODE(표현식, 비교값1, 반환값1, 비교값2, 반환값2, ..., 기본값)
- 표현식이 각 비교값과 일치하면 해당 반환값 반환
- 아무것도 일치하지 않으면 마지막 기본값 반환 (기본값 생략 시, NULL 반환)
COALESCE 함수
→ 여러 인자 중에서 NULL이 아닌 첫 번째 값을 반환
→ NVL은 인자가 2개지만, COALESCE는 여러 인자를 넣을 수 있음.
COALESCE(값1, 값2, 값3, ...)
- 왼쪽부터 차례대로 확인해서 NULL이 아닌 첫 번째 값을 반환
- 모든 값이 NULL이면 NULL 반환
728x90
'DB > Oracle' 카테고리의 다른 글
| [Oracle] WITH절이란? (기본 사용법부터 재귀적 WITH절까지) (0) | 2025.10.16 |
|---|---|
| [Oracle] EXISTS 란? (0) | 2025.10.16 |
| [Oracle] 옵티마이저 힌트 LEADING 과 INDEX_SS (0) | 2025.10.16 |
| [Oracle] INSERT 내부에 SELECT절 (0) | 2025.10.16 |
| [Oracle] 병렬처리 parallel (0) | 2025.10.16 |