为什么SUM(某些空值+ 0)在sql中返回null?
实施例。 SELECT SUM(CUST + 0)FROM SOME_TABLE;
假设CUST列的所有行都为空值。
上述查询将对所有列的SUM(CUST + 0)求值为null。
有谁知道为什么?
无论如何使用它是否安全?
答案 0 :(得分:0)
这是您的查询:
SELECT SUM(CUST+0)
FROM SOME_TABLE
当NULL
的所有值都为CUST
时,这将仅返回NULL
。 SUM()
- 与其他聚合函数一样 - 通常忽略NULL
个值。它只有在没有选择时返回NULL
,因为所有值都是NULL
。
代码+ 0
无效。如果CUST
为NULL
,则CUST + 0
也为NULL
。如果CUST
不是NULL
,那么当CUST + 0
为数字时,CUST
与CUST
相同。
我建议你做以下事情:
SELECT SUM(CUST)
FROM SOME_TABLE
如果CUST
不是数字,则不要使用SUM()
。要获得一个值,请改用MIN()
或MAX()
。