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

时间:2017-12-12 22:29:03

标签: sql sql-server sql-server-2008 tsql

一个表可以为每个键创建多个记录,如下所示。

实际表:

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

预期结果:

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

我无法想到这里的解决方案。任何帮助深表感谢。

2 个答案:

答案 0 :(得分: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 :(得分:-1)

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