gpt4 book ai didi

SQL - 两列不同,第三列汇总值

转载 作者:行者123 更新时间:2023-12-03 02:23:48 25 4
gpt4 key购买 nike

我有一个包含 3 个不同 ID 的表。我想区分第 1 列和第 2 列,并将第 3 列的值总结为一个字段 - 可能是逗号分隔的字符串。汇总字段不必“看起来不错”(没有问题:'4,3,'(末尾逗号))。我正在使用 MS SQL Server 2008。

例如:

ID1  ID2  ID3
1 1 5
1 1 8
1 2 5
1 2 8
2 3 10
2 3 11
2 5 12

选择...?

结果:

ID1   ID2   Summary
1 1 5,8
1 2 5,8
2 3 10,11
2 5 12

最佳答案

编辑 - 删除第三列中的尾随空格

既然您说汇总字段不必看起来漂亮,请尝试以下操作:

SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2

它假设您的表名称称为“MyTable”。此查询会在末尾产生逗号,但应该可以帮助您开始。使用我的测试数据库,输出如下:

ID1 ID2  M1
1 1 5,8,
1 2 5,8,
2 3 10,11,
2 5 12,

如果你想清理它,这应该可以工作(尽管查询本身很丑陋):

SELECT ID1, ID2, left(M1, len(M1) - 1) AS M1
FROM
(
SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2
) CleanedUp

关于SQL - 两列不同,第三列汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3803361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com