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
,该怎么办?这里的其他用户发布源表的代码也很有帮助。这样我们就可以直接将数据集剪切粘贴到编辑器中。随着你的问题变得越来越复杂,你会发现你会得到更多的回答。