Oracle函数课程:nvl函数
1. NVL(x,value)
如果x为空,返回value,否则返回x。
案例7:对工资是2000元以下的员工,如果没有发奖金,每人奖金100元。
代码演示:NVL函数
SQL> SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
ENAME
JOB
SAL
NVL(COMM,100)
SMITH
CLERK
800
100
ALLEN
SALESMAN
1600
300
WARD
SALESMAN
1250
500
MARTIN
SALESMAN
1250
1400
TURNER
SALESMAN
1500
50
ADAMS
CLERK
1100
100
JAMES
CLERK
950
100
7 rows selected
2. NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2。
案例8:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元。
代码演示:NVL2函数
SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm"
2 FROM EMP WHERE SAL<2000;
ENAME
JOB
SAL
comm
SMITH
CLERK
800
200
ALLEN
SALESMAN
1600
400
WARD
SALESMAN
1250
600
MARTIN
SALESMAN
1250
1500
TURNER
SALESMAN
1500
150
ADAMS
CLERK
1100
200
JAMES
CLERK
950
200
MILLER
CLERK
1300
200
8 rows selected
来源:Oracle培训