2016-11-20 37 views
-3

我在SQL SSMS表分隔列表,用分号与值如下:逗号SQL

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

您可以使用GROUP_CONCAT这一点。

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

它会显示以逗号分隔的值,我们需要使用'separator'来获得所需的输出。 –

+0

嘿,感谢您的帮助,但我希望以逗号分隔的评论','在同一时间,然后分号';'从不同的时间分开评论。 –

1

您需要使用group_concatconcat格式化值,例如:

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

这里的SQL Fiddle

+0

嘿,感谢您的帮助,但我希望用逗号分隔的评论','同时再分号';'从不同的时间分开评论。 –

+0

@SwardaAparaj编辑了答案和SQL小提琴。 –