NVL, NVL2
=== 어떠한 테이블(또는 뷰) 에서 데이터 정보를 꺼내와 보는 명령어인 select 의 처리순서 ===
select 컬럼명, 컬럼명 --- 5 컬럼명 대신에 *(아스테리크)을 쓰면 모든 컬럼을 뜻하는 것이다.
from 테이블명(또는 뷰명) --- 1
where 조건절 --- 2 where 조건절이 뜻하는 것은 해당 테이블명(또는 뷰명)에서 조건에 만족하는
행(row)을 메모리(RAM)에 로딩(퍼올리는것)해주는 것이다.
group by 절 --- 3
having 그룹함수조건절 --- 4
order by 절 --- 6
-----------------------------------------------------------------------------------------------------------------------------------------------------
*** NULL 을 처리해주는 함수 ***
-NULL 은 존재하지 않는 것이므로 4칙연산(+ - * / -)에 NULL 이 포함되면 그 결과는 무조건 NULL 이 된다.
1. NVL
nvl(1,2) - 1(컬럼)을 출력, 1이 null 이라면 2 출력
select '안녕하세요'
from dual; -- dual 은 select 다음에 나오는 값들을 화면에 보여주기 위한 용도로 쓰이는 가상테이블이다.
select 1+2, 1+null, 3*0, null*0, 2-1, 2-null, 5/2
from dual;
select nvl(7,3), nvl(null,3),
nvl('이순신','거북선'),nvl('null','거북선')
from dual;
-- 7 3 이순신 null
2. NVL2
NVL2(1,2,3) - 1:컬럼명, 2:컬럼명이 null이 아닐때 출력, 3:컬럼명이 null일때 출력
select nvl2(7,3,2), nvl2(null,3,2),
nvl2('이순신','거북선','구국영웅'),nvl2('null','거북선','구국영웅')
from dual;
-- 3 2 거북선 거북선