我有一个测试表,如下所示:
Name x_col y_col
=======================
Jay NULL 2
这是对一个更大问题的简单化表述,但已经足够了。
当我执行以下查询时,我得到 NULL
返回
SELECT SUM(x_col + y_col) FROM TEST_TABLE WHERE Name='Jay'
我希望是这样 2
. 我以为 SUM()
方法忽略空值。如何忽略此查询中的空值?或者实际上,一般来说,这对我的很多算法来说都是个问题。
2条答案
按热度按时间unguejic1#
你得到了吗
NULL
因为NULL + 2
退货NULL
. 这个SUM()
只有一行,如果+
表达式是NULL
,然后SUM()
退货NULL
.如果你愿意的话
NULL
被视为0
,用途COALESCE()
:最后一个音符。如果从数据开始并过滤掉所有行,那么结果仍然是空的。得到
0
,您需要一个额外的COALESCE()
:2q5ifsrm2#
使用coalesce将null替换为0。