Sql aggregate function to obtain a list

冷暖自知 提交于 2019-11-27 06:09:46

问题


Hei!

How can I create an aggregate function to obtain a list of the aggregate values.

given :

key     value
Andrei  1
Andrei  2
Andrei  3
Mihai   4
Mihai   5
Mihai   6

I want

key list
Andrei 1,2,3
Mihai 4,5,6

回答1:


I used this article once to to the exact same thing:

http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/




回答2:


MS SQL solution: [Note: This solution only works on SQL 2005 and later. Original question didn't specify the version in use.]

SELECT 
key
, STUFF((SELECT ',' + CAST([value] AS nvarchar(max)) FROM <#Table#> WHERE (key = Results.key) FOR XML PATH ('')),1,2,'') AS NameValues
FROM <#Table#> Results
GROUP BY key



回答3:


You need to simulate group_concat function of MySQL.

Check this article for more info.



来源:https://stackoverflow.com/questions/9358691/sql-aggregate-function-to-obtain-a-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!