逗号在SQL中用分号分隔列表

时间:2016-11-20 23:49:04

标签: sql-server-2008 ssms

我在sql ssms中有一个表,其值如下:

RID | Comments|                 Date               |Date Without Miliseconds


----------
780 |General Comment 2  |2016-11-20 14:12:44.097 |2016-11-20 14:12:44.000

----------


780 |General Comment 1  |2016-11-20 14:05:23.687    |2016-11-20 14:05:23.000


----------


780 |Document comment 1 |2016-11-20 14:05:23.687|2016-11-20 14:05:23.000


----------

780 |DEIRDRE Nominations1 |2016-11-20 14:05:23.390  |2016-11-20 14:05:23.000

所以我想要输出如下:

----------
RID |List of Comments


----------


780 |General Comment 1,Document comment 1,DEIRDRE Nominations1; General Comment 2

我不想修改表架构。我添加了没有Miliiseconds的日期列,以便于分组。 Same DateTime中的注释应以逗号分隔,并且来自不同的dateTime应以分号';'来表示。

你能帮我解决这个问题吗?

谢谢, Swarda

2 个答案:

答案 0 :(得分:2)

您可以使用GROUP_CONCAT

SELECT RID, GROUP_CONCAT(Comments SEPARATOR ';') AS ListOfComments 
FROM table 
GROUP BY RID;

答案 1 :(得分:1)

您需要将group_concatconcat一起使用来格式化值,例如:

select id, concat(group_concat(comment), ';') as comments
from comments
group by id;

此处 SQL Fiddle