`
wang19841229
  • 浏览: 95497 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

ORACL计算表达式结果莫名变成NULL

 
阅读更多

学习ORALCE的时候,在做scott示例数据库练习的时候,计算工资和奖金合计查询的时候出现结果变成空了。

语句如下

SQL> select emp.ename , sal*13+emp.comm*12 AS "工资" from emp;
 
ENAME              工资
---------- ----------
SMITH      
ALLEN           24400
WARD            22250
JONES      
MARTIN          33050
BLAKE      
CLARK      
SCOTT      
KING       
TURNER          19500
ADAMS      
JAMES      
FORD       
MILLER     
 
14 rows selected

 查了一下原因是:ORACLE中如果算数表达中有一个是NULL,整个结果就变成NULL了。解决办法用ORACLE的自带函数nvl()解决。

代码如下

SQL> select emp.ename , sal*13+ nvl( emp.comm*12,0) AS "工资" from emp;
 
ENAME              工资
---------- ----------
SMITH           10400
ALLEN           24400
WARD            22250
JONES           38675
MARTIN          33050
BLAKE           37050
CLARK           31850
SCOTT           39000
KING            65000
TURNER          19500
ADAMS           14300
JAMES           12350
FORD            39000
MILLER          16900

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics