我已经获得了一个TSQL表,其摘录在
之下Serial Number Code 1 Code 2 Code 3
15872 1242 NULL NULL
15872 NULL 558 222
99955 995 452 NULL
我想将这四个字段组合在一起以形成以下输出
Serial Number Code 1 Code 2 Code 3
15872 1242 558 222
99955 995 452 NULL
这看起来很简单,但我无法做到。任何建议都将非常感谢!
亲切的问候,
DJ
答案 0 :(得分:0)
您需要将聚合函数与Coalesce函数结合使用,如下所示:
select Serial , COALESCE(SUM(code1),0),COALESCE(SUM(code2),0),COALESCE(SUM(code3),0)
from yourTable
group by Serial
这基本上将NULL
替换为0
,以便您可以按预期计算SUM
希望这有帮助!
答案 1 :(得分:0)
哦......误读了两次问题,哈哈。
CREATE TABLE #X
(
SerialNumber INT
, Code1 INT
, Code2 INT
, Code3 INT
)
INSERT INTO #X
VALUES
(15872, 1242, NULL, NULL)
, (15872, NULL, 558, 222)
, (99955, 995, 452, NULL)
SELECT
[SerialNumber]
, MAX([Code1]) AS [Code1]
, MAX([Code2]) AS [Code2]
, MAX([Code3]) AS [Code3]
FROM #x
GROUP BY [SerialNumber]
现在,您还没有提及有关聚合的任何内容,所以这假设只有一行可能具有该值,即不存在:
Serial Number Code 1 Code 2 Code 3
15872 1242 773 NULL
15872 NULL 558 222