728x90
반응형
NVL( )
NULL 값을 만나면 다른 값으로 치환해서 출력하는 함수
문법
NVL(컬럼 , 치환할 값)
치환값이 숫자일 경우
NVL(sal , 0) : sal 컬럼의 값이 null 일 경우 null 대신 0 으로 치환
NVL(sal , 100) : sal 컬럼의 값이 null 일 경우 null 대신 100 으로 치환
SELECT ename, comm, NVL(comm, 0), NVL(comm, 100)
FROM emp
WHERE deptno = 30;
치환 값이 문자일 경우
NVL(position , ‘사원’) -> position 값이 null 일 경우 ‘사원’ 으로 치환하라
치환 값이 날짜일 경우
NVL(hiredate,’2014/05/01’) -> hiredate 값이 null일 경우 '2014/05/01' 로 치환하라
EX01
SELECT name, pay, bonus,
TO_CHAR((pay*12 + NVL(bonus, 0)), '999,999') "TOTAL"
FROM professor
WHERE deptno = 201;
NVL2( )
null의 유무를 따라 실행하는 함수.
문법
NVL2( COL1 , COL2 , COL3 )
EX01
emp 테이블에서 deptno 가 30번 인 사람들의 empno , ename , sal , comm 값을 출력하되 만약 comm 값이 null 이 아니면 sal+comm 값을 출력하고 comm 값이 null 이면 sal*0 의 값을 출력하세요.
SELECT empno, ename, sal, comm,
NVL2(comm, sal+comm, sal*0) "NVL2"
FROM emp
WHERE deptno = 30;
EX02
emp 테이블에서 deptno 가 30 번인 사원들을 조회하여 comm 값이 있을 경우 'Exist' 을 출력하고 comm 값이 null 일 경우 'NULL' 을 출력하세요.
SELECT empno, ename, comm,
NVL2(comm, 'Exist', 'NULL') "NVL2"
FROM emp
WHERE deptno = 30;
728x90
반응형
'Database' 카테고리의 다른 글
[Oracle] DECODE( ) 연습문제 (0) | 2022.11.07 |
---|---|
[Oracle] DECODE( ) (0) | 2022.11.07 |
[Oracle] TO_NUMBER( ) (0) | 2022.11.07 |
단일행 함수 TO_CHAR 예제 (0) | 2022.11.07 |
[Oracle] 숫자함수 (0) | 2022.11.03 |
댓글