본문 바로가기
2019/ORACLE

SQL NVL NVL2

by SOLYI 2019. 11. 15.

--null을 aaa로 채우기
select nvl(null, 'aaa')
from dual;

--null값이 없으므로 test출력
select nvl('test','aaa') from dual;

--null값을 1000으로 대체
select empno, ename, comm, nvl(comm,1000)
from emp;

select ename, sal, comm, sal*12+comm
from emp;

-- null값을 0으로.
select ename, sal, comm, sal*12+nvl(comm,0)
from emp;

--null값에 문자 데이터 넣기
select ename, sal, comm, nvl(to_char(comm), 'no data') as result
from emp;
col result format a10;

-- null값에 문자 데이터 넣기
select empno, ename, nvl(to_char(mgr), 'C E O') as MANAGER
from emp
where mgr is null;

--comm이 null이 아니면 comm, null이면 0 출력
select nvl2(comm, comm, 0) from emp;

--comm이 null이 아니면 comm+1000, null이면 100 출력
select nvl2(comm, comm+1000, 100) from emp;

--nvl과 nvl2 사용
select empno, ename,sal, 
sal*12+nvl(comm,0) as "NVL",
nvl2(comm, sal*12+comm, sal*12) as "NVL2"
from emp;
반응형

'2019 > ORACLE' 카테고리의 다른 글

SQL CASE-WHEN-THEN  (0) 2019.11.15
SQL DECODE  (0) 2019.11.15
SQL DATE  (0) 2019.11.15
SQL INSTR  (0) 2019.11.15
SQL LPAD RPAD  (0) 2019.11.15