Sql 增加两列';将数据合并为一个
我的报告中有两栏,如下所示Sql 增加两列';将数据合并为一个,sql,sql-server,Sql,Sql Server,我的报告中有两栏,如下所示 ABC XYZ ------------- NULL 1 NULL NULL 5 NULL 4 8 NULL 1 8 NULL 1 NULL 5 12 1 8 我想将这两个值相加,并需要以下最终结果 ABC XYZ ------------- NULL 1 NULL NULL 5 NULL 4 8 NULL 1 8 NULL 1 NULL 5 12 1 8 请帮忙
ABC XYZ
-------------
NULL 1
NULL NULL
5 NULL
4 8
NULL 1
8 NULL
1
NULL
5
12
1
8
我想将这两个值相加,并需要以下最终结果
ABC XYZ
-------------
NULL 1
NULL NULL
5 NULL
4 8
NULL 1
8 NULL
1
NULL
5
12
1
8
请帮忙
提前谢谢我想这就是你想要的
Select
Case WHEN (ABC is null AND XYZ is null) THEN NULL
ELSE (Coalesce(ABC,0) + Coalesce(XYZ,0)) END as [sum]
from table
使用ISNULL()
在添加之前检查空值
NULLIF(ISNULL(ABC, 0) + ISNULL(XYZ, 0), 0)
这适用于MS Sql Server
DECLARE @Table AS TABLE (ABC INT, XYZ INT);
INSERT INTO @Table
VALUES (NULL, 1)
, (NULL, NULL)
, (5, NULL)
, (4, 8)
, (NULL, 1)
, (8, NULL);
SELECT ABC
, XYZ
, CASE WHEN ABC IS NULL
AND XYZ IS NULL THEN NULL
ELSE ISNULL(ABC, 0) + ISNULL(XYZ, 0)
END AS Result
FROM @Table;
如果有一行具有相反的值,例如
1
和-1
,该怎么办?这里的其他用户发布源表的代码也很有帮助。这样我们就可以直接将数据集剪切粘贴到编辑器中。随着你的问题变得越来越复杂,你会发现你会得到更多的回答。