通过SQL中的查询显示组中的非聚合列

时间:2010-07-12 09:46:13

标签: sql sql-server-2008 aggregate

我在SQL 2008中有一个表

ID     Items
1      A
1      B
2      C
3      D
3      B

我希望得到结果

ID    Items
1     A,B
2     C
3     B,D

我使用了游标,但它大大减慢了过程,我可以使用逐个查询或通过任何其他方式实现上述结果。

谢谢和问候

卡皮尔西

2 个答案:

答案 0 :(得分:2)

您正在寻找一种连接结果的方法。我不认为MSSQL有这方面的功能,但这里有一个关于如何创建这样的方法的非常好的教程:http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

答案 1 :(得分:0)

我认为

GROUP_CONCAT

是您正在寻找的功能。像

这样的东西
SELECT id,
       GROUP_CONCAT (DISTINCT Items ORDER BY Items SEPARATOR ',')
    FROM my_table
    GROUP BY id;