没有记录的查询为SUM函数返回null

时间:2016-03-29 20:36:17

标签: mysql sql

如果TableA中没有记录,此查询将返回0条记录:

Select strA, strB, intC, floatD, from tableA

但是,此查询返回1条记录,所有列都为Null。

Select strA, strB, intC, floatD, sum(intC+intD) as sumE,
from tableA

所以,为了解决这个问题,我做了:

Select strA, strB, intC, floatD, sum(intC+intD) as sumE,
from tableA
having sumE is not null

我想知道是否有更好的方法来做同样的事情。任何内置的MySQL函数可以做同样的事情吗?

1 个答案:

答案 0 :(得分:1)

那是因为你没有GROUP BY。您要求MySQL为整个表格获取SUM intC + intD,因此无论如何都会给您一个结果。它必须为strA, strB等添加内容,因此它会输入NULL值。

例如,只需执行SELECT SUM(intA) FROM tableA即可获得NULL