函数code |
功能blog |
NVL(x,value)ip |
若是x为空,返回value,不然返回xget |
NVL2(x,value1,value2)table |
若是x非空,返回value1,不然返回value2基础 |
下面将结合实例对这两个函数进行介绍。im
l NVL(x,value)img
若是x为空,返回value,不然返回x。tab
示例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行。 |