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';