對於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