对于MySQL,我想要一个返回表达式SUM的查询,除非我希望返回值为NULL,如果包含任何表达式在SUM中是NULL。 (SUM的正常运行是忽略NULL值SQL查询为SUM(表达式)返回NULL,只要包含的值为NULL
下面是说明
CREATE TABLE t4 (fee VARCHAR(3), fi INT);
INSERT INTO t4 VALUES ('fo',10),('fo',200),('fo',NULL),('fum',400);
SELECT fee, SUM(fi) AS sum_fi FROM t4 GROUP BY fee
这正好返回结果集我想到一个简单的测试用例:
fee sum_fi
--- ------
fo 210
fum 400
我要的是一个查询返回一个不同的结果集:
fee sum_fi
--- ------
fo NULL
fum 400
我想要的是值为re只要包含的值为NULL,就将sum_fi转换为NULL。 (这与SUM集合函数不同,它忽略NULL,并返回非NULL表达式的总和。)
问题:可以使用什么查询来返回所需的结果集?
我没有找到任何内置的聚合函数,表现出这种行为。
与标记的解决方案类似的问题:http://stackoverflow.com/questions/1288953/using-sum-so-that-null-in-columns-make-sum-null – 2011-03-15 13:57:33
谢谢亚伦,我的搜索没有找到那个问题。 – spencer7593 2011-03-17 22:12:53