SQL在处理空值时添加数字

时间:2017-10-25 21:01:41

标签: sql

我在这里有这样的陈述:

SELECT sum(table1.foo + table1.bar) AS Sum 
FROM table1
GROUP BY Fname;

当我尝试添加来自foo和bar的数字时,如果来自foo或bar的一个值为null,则会抛出数字并给出不同的计数总和

foo | bar
  6    4
  5    null
  9    1 
  2    1
  3    null

我希望它添加所有数字,总共给我31个

但在这种情况下它总共给了我23个 会爱一些帮助!谢谢!

3 个答案:

答案 0 :(得分:1)

使用SELECT sum(coalesce(table1.foo, 0) + coalesce(table1.bar, 0)) AS Sum FROM table1 GROUP BY Fname;

group by

如果您想要一行的总计,则需要删除SELECT sum(coalesce(table1.foo, 0) + coalesce(table1.bar, 0)) AS Sum FROM table1;

{{1}}

答案 1 :(得分:0)

任何数字+ NULL = NULL。您希望向引擎指示当它看到NULL时,它应该将该NULL值视为0。

SELECT sum(ISNULL(table1.foo, 0) + ISNULL(table1.bar,0)) AS Sum 
FROM table1
GROUP BY Fname;

答案 2 :(得分:-1)

我相信您需要使用" ISNULL"将SQL替换为零。

尝试: SELECT sum(ISNULL(fix_bat_sum.foo,0)+ ISNULL(fix_bat_sum.bar,0))AS Sum