转载自SUMSEN的博客
使用
nvl函数可以将一个空的值转换为实际的值,数据类型可以是日期,数字,字符。数据类型必须匹配:
nvl(commision,0)
nvl(hiredate,'01-JAN-87')
nvl(job_id,'no manager') nvl(to_char(job_id),'no manager')
nvl能够转换任何数据类型,但是转换的数据类型返回值必须是nvl(expr1,expr2)第一个参数expr的类型。如:date,number, varchar2 or char
例子
计算员工的年薪,奖金为空的用0代替。
SQL> select empno,ename,sal,nvl(comm,0) comm, (sal+nvl(comm,0))*12 annual_sal fr
om emp ;
EMPNO ENAME SAL COMM ANNUAL_SAL
---------- ---------- ---------- ---------- ----------
7369 SMITH 800 0 9600
7499 ALLEN 1600 300 22800
7521 WARD 1250 500 21000
7566 JONES 2975 0 35700
7654 MARTIN 1250 1400 31800
7698 BLAKE 2850 0 34200
7782 CLARK 2450 0 29400
7788 SCOTT 3000 0 36000
7839 KING 5000 0 60000
7844 TURNER 1500 0 18000
7876 ADAMS 1100 0 13200
EMPNO ENAME SAL COMM ANNUAL_SAL
---------- ---------- ---------- ---------- ----------
7900 JAMES 950 0 11400
7902 FORD 3000 0 36000
7934 MILLER 1300 0 15600