功能
NVL(x,value)
如果x为空,返回value,否则返回x
NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2
下面将结合实例对这两个函数进行介绍。
lNVL(x,value)
如果x为空,返回value,否则返回x。
示例1:对工资SAL是1500元以下的员工,如果没有发奖金,每人奖金200元。
SQL> SELECT ENAME,JOB,SAL,COMM,NVL(COMM,200) FROM EMP WHERE SAL<1500;
ENAME JOB SAL COMM NVL(COMM,200)
---------- --------- ---------- ---------- -------------
SMITH CLERK 800 200
WARD SALESMAN 1250 500 500
MARTIN SALESMAN 1250 1400 1400
ADAMS CLERK 1100 200
JAMES CLERK 950 200
MILLER CLERK 1300 200
已选择6行。
lNVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2。
示例2:对EMP表中工资为1500元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元。
SQL> SELECT ENAME,JOB,SAL,COMM,NVL2(COMM,200,100) FROM EMP WHERE SAL<1500;
ENAME JOB SAL COMM NVL2(COMM,200,100)
---------- --------- ---------- ---------- ------------------
SMITH CLERK 800 100
WARD SALESMAN 1250 500 200
MARTIN SALESMAN 1250 1400 200
ADAMS CLERK 1100 100
JAMES CLERK 950 100
MILLER CLERK 1300 100
已选择6行。