为什么SUM(某些空值+ 0)在sql中返回null?

时间:2014-12-12 21:31:22

标签: mysql sql jdbc

为什么SUM(某些空值+ 0)在sql中返回null?

实施例。 SELECT SUM(CUST + 0)FROM SOME_TABLE;

假设CUST列的所有行都为空值。

上述查询将对所有列的SUM(CUST + 0)求值为null。

有谁知道为什么?

无论如何使用它是否安全?

1 个答案:

答案 0 :(得分:0)

这是您的查询:

SELECT SUM(CUST+0)
FROM SOME_TABLE

NULL的所有值都为CUST时,这将仅返回NULL SUM() - 与其他聚合函数一样 - 通常忽略NULL个值。它只有在没有选择时返回NULL,因为所有值都是NULL

代码+ 0无效。如果CUSTNULL,则CUST + 0也为NULL。如果CUST不是NULL,那么当CUST + 0为数字时,CUSTCUST相同。

我建议你做以下事情:

SELECT SUM(CUST)
FROM SOME_TABLE

如果CUST不是数字,则不要使用SUM()。要获得一个值,请改用MIN()MAX()