我在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
答案 0 :(得分:2)
您可以使用GROUP_CONCAT。
SELECT RID, GROUP_CONCAT(Comments SEPARATOR ';') AS ListOfComments
FROM table
GROUP BY RID;
答案 1 :(得分:1)
您需要将group_concat
与concat
一起使用来格式化值,例如:
select id, concat(group_concat(comment), ';') as comments
from comments
group by id;
此处 SQL Fiddle 。