T-SQL - 将多个记录投影到每个键的一行中

问题描述 投票:0回答:2

一个表的每个键可以有多个记录,如下所示。

实际表:

Key         Value
----------- ---------
2149        805501   
2149        800936   
15385       800622   
18105       997057   
18105       999390   

预期结果:

Key         Value
----------- ---------
2149         805501,800936
15385       800622   
18105       997057,999390   

我该如何解决这个问题?

sql sql-server sql-server-2008 t-sql
2个回答
3
投票

你应该使用

FOR XML PATH
:

Select Key, STUFF((SELECT ',' + VALUE
                   FROM Table AS T2 
                   WHERE T1.Key = T2.Key
                  FOR XML PATH('')), 1, 1, '') 
FROM Table T1
GROUP BY Key

更新1

根据您的评论

enter image description here


-1
投票

我认为答案是您问题顶部的实际表格, 您无法在数据库表中以这种方式关联键的值

© www.soinside.com 2019 - 2024. All rights reserved.