Oracle DB NVL、NVL2、NULLIF、COALESCE函数(二)

2014-11-24 11:46:43 · 作者: · 浏览: 1
LESCE(TO_CHAR(commission_pct),TO_CHAR(manager_id), 'No commission and no manager') FROM employees; LAST_NAME EMPLOYEE_ID COALESCE(TO_CHAR(COMMISSION_PCT),TO_CHAR ------------------------- ----------- ---------------------------------------- OConnell 198 124 Gietz 206 205 King 100 No commission and no manager Bernstein 151 .25

在幻灯片中所示的示例中,如果manager_id值不为空,则会显示出来。如果manager_id值为空,则会显示commission_pct。如果manager_id和commission_pct值都为空,则会显示“No commission and no manager”。请注意,已应用TO_CHAR函数,所以所有表达式都具有相同的数据类型。
示例:
对于不领取佣金的雇员,你的组织想要将其薪金增加$2,000;对于领取佣金的雇员,在查询中应计算新的薪金,该薪金等于现有薪金加上佣金额。
hr@TEST0924> SELECT last_name, salary, commission_pct, COALESCE((salary+(commission_pct*salary)), salary+2000, salary) "New Salary" FROM employees; 

LAST_NAME                     SALARY COMMISSION_PCT New Salary
------------------------- ---------- -------------- ----------
OConnell                        2600                      4600
Bernstein                       9500            .25      11875
Hall                            9000            .25      11250

注:请检查输出。对于不领取佣金的雇员,New Salary 列显示增加了$2,000 后的薪金;对于领取佣金的雇员,New Salary 列显示计算的佣金额加上薪金。