功能 | |
NVL(x,value) | 如果x为空,返回value,否则返回x |
NVL2(x,value1,value2) | 如果x非空,返回value1,否则返回value2 |
下面将结合实例对这两个函数进行介绍。
l NVL(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行。 |
l NVL2(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行。 |