| 功能 | |
| 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行。 |
本文详细介绍了Oracle数据库中的NVL和NVL2函数,并通过具体示例展示了这两种函数的应用场景。NVL函数用于当输入为空时提供替代值,而NVL2则根据输入是否为空决定返回两个不同值中的哪一个。
13万+

被折叠的 条评论
为什么被折叠?



