개발자로 가는길 :: Oracle DB( 오라클함수 - Null처리함수 , decode함수 , case문 )

Oracle DB( 오라클함수 - Null처리함수 , decode함수 , case문 )

728x90
반응형
--NULL 처리 함수
-- NULL + 300 => NULL

-- NVL(데이터 , NULL 일 경우 반환할 데이터)
select empno, ename , sal , nvl(comm,0) , sal+nvl(comm,0)
from emp;

-- NVL2(데이터 , NULL이 아닐경우 반환할 데이터 , NULL일 경우 반환할 데이터)
select empno, ename , sal , nvl2(comm, 'O ' , 'X') as comm, sal+nvl(comm,0)
from emp;

--DECODE 함수 / CASE 문
--DECODE(검사 대상이 될 데이터, 
--                  조건1, 조건1이 일치할때 실행할 구문 , 
--                  조건2,조건2가 일치할때 실행할 구문)

--EMP 테이블에 직책이 MANAGER인 사람은 급여의 10% 인상
--SALESMAN 인 사람은 5% ,  ANALYST 인 사람은 그대로 , 나머지는 3% 인상된 급여 출력

select empno , ename, job, sal,
decode(
job,' MANAGER', sal*1.1,
job, 'SALESMAN' , sal*1.05 ,
job, 'ANALYST', sal, sal *1.03 
)
from emp;


select empno , ename, job, sal,
case job
when ' MANAGER' then sal*1.1
when 'SALESMAN' then sal*1.05 
when  'ANALYST' then sal
else sal *1.03 
end as up_sal

from emp;
728x90
반응형

댓글()