在MySQL中添加列 - 如何将NULL视为0

时间:2013-07-03 13:36:15

标签: mysql sql

我有简单的表(测试),我需要执行一些添加(我想要总行和列总数)。

 id  var1  var2
 1   NULL  NULL
 2   10    NULL

对于列总计,求和按预期工作(在添加中忽略NULL):

SELECT SUM(var1) FROM test

10

对于行总计,加法不会忽略NULL(如果任何列为NULL,则结果为NULL):

SELECT var1+var2 FROM test

NULL
NULL

我希望它返回的是:

SELECT var1+var2 FROM test

NULL
10

有没有办法让MySQL在添加中将NULL视为0?

3 个答案:

答案 0 :(得分:20)

您想使用coalesce()

select coalesce(var1, 0) + coalesce(var2, 0)

coalesce()是ANSI标准,可在大多数数据库(包括MySQL)中使用。

答案 1 :(得分:9)

使用IFNULL函数

SELECT IFNULL(var1, 0) + IFNULL(var2, 0) FROM test

答案 2 :(得分:0)

select 
Case when (coalesce(`var1`, 0) + coalesce(`var2`, 0))=0
then NULL
else coalesce(`var1`, 0) + coalesce(`var2`, 0)
end
from test

<强> SQL FIDDLE