您的位置:首页 > 数据库 > SQL语言

sql 多列求和 当某列有null值时的处理

更多 2016/4/8 来源:SQL语句学习浏览量:4719
学习标签: SQL语句
本文导读:在数据库应用中,有时需要用SQL语句计算每行记录的几列求和,然后组合成新的一列返回,我们很容易想到的是,将这几列相加即可,但是,如果某行记录的这几列有一列是NULL值,那么这条记录相加值为Null,下面介绍处理方法。

一、SQL几列求和实例

 

1、比如表usr_table,表有四列

usr, item1, item2, item3

 

2、针对每个user对item1,item2,item3求和的sql为

select item1+item2+item3 as itemAdd,usr  from usr_table

 

3、如果有一列的值为null时,会导致求不出结果,返回值为 null

 

4、如果是sum等聚合函数,如果某一行的某列有null值,则 以为某条记录相加的结果为 null,从而导致 sum 结果不准确。

 

 

二、解决方法

 

1、对每列加上 是否为空的判断,如果为空,则赋值0。

2、例如:SQL SERVER中,使用 ISNULL函数;MYSQL中使用 IFNULL函数

3、上面实例的SQL语句做如下修改

select isnull(item1,0)+isnull(item2,0)+isnull(item3,0) as itemAdd, usr from usr_table

select sum(isnull(item1,0)+isnull(item2,0)+isnull(item3,0))as itemSum  from usr_table

 

收藏
319
很赞
219
您可能感兴趣