像这样的查询
SELECT A,B,C,D, (A+B+C+D) as TOTAL
FROM TABLES
如果 A、B、C 和 D 为 NULL。我需要返回 NULL。 但是如果其中任何一个不为NULL。其他将从 NULL 变为零。 和总计(a+b+c+d)。
现在试试这个方法
SELECT A,B,.. CASE WHEN (A IS NULL) AND (B IS NULL) AND ... THEN NULL
ELSE ISNULL(A,0) + ISNULL(B,NULL) +... END
但是它太长了,我在整个查询中有很多总数。 解决这个问题的最佳方法是什么?
最佳答案
您想要的语义与 SUM
提供的语义相同。
SELECT A,B,C,D,
(SELECT SUM(val)
FROM (VALUES(A),
(B),
(C),
(D)) T (val)) AS Total
FROM YourTable
关于sql - 我只需要 Total return NULL 如果所有值都是 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53236166/