sql 多列求和 当某列有null值时的处理
sql 多列求和 当某列有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