SQL SUM忽略空值

SQL SUM忽略空值,sql,sum,Sql,Sum,我有一个测试表,如下所示: Name x_col y_col ======================= Jay NULL 2 这是对一个更大问题的简单表述,但已经足够了 当我执行以下查询时,我得到返回的NULL SELECT SUM(x_col + y_col) FROM TEST_TABLE WHERE Name='Jay' 我希望它是2。我认为SUM()方法忽略空值。如何忽略此查询中的空值?或者实际上一般来说,这是我的许多算法的一个问题。使用CO

我有一个测试表,如下所示:

Name     x_col       y_col
=======================
Jay     NULL     2
这是对一个更大问题的简单表述,但已经足够了

当我执行以下查询时,我得到返回的
NULL

SELECT SUM(x_col + y_col) FROM TEST_TABLE WHERE Name='Jay'

我希望它是
2
。我认为
SUM()
方法忽略空值。如何忽略此查询中的空值?或者实际上一般来说,这是我的许多算法的一个问题。

使用COALESCE将NULL替换为0

SELECT sum(coalesce(x_col, 0) + coalesce(y_col, 0)) FROM TEST_TABLE WHERE Name='Jay'

您将获得
NULL
,因为
NULL+2
返回
NULL
SUM()
只有一行,如果
+
表达式为
NULL
,则
SUM()
返回
NULL

如果希望将
NULL
视为
0
,请使用
COALESCE()

最后一个音符。如果从数据开始并过滤掉所有行,则结果仍然为空。要获得
0
,您需要额外的
COALESCE()


sum(coalesce(x_col,0)+coalesce(y_col,0))
?@arsenal88。我删除了不一致的数据库标记。但是,您的问题涉及标准SQL,因此数据库实际上并不重要。
SELECT SUM(COALESCE(x_col, 0) + COALESCE(y_col, 0))
FROM TEST_TABLE
WHERE Name = 'Jay';
SELECT COALESCE(SUM(COALESCE(x_col, 0) + COALESCE(y_col, 0)), 0)
FROM TEST_TABLE
WHERE Name = 'Jayden';