在SQL中以逗号分隔列表的行

时间:2012-04-04 17:42:13

标签: sql

我有一个要求,其中表格结构我看起来像

ID                 Owner Id                NAME  
1                  20                      Name 1  
1                  21                      Name 2  
1                  34                      Name 3  
2                  10                      Name 4  
2                  12                      Name 5  
3                  100                     Name 6  

我需要一个可以给我结果的查询

ID                Owner ID                Name  
1                  20                     Name 1, Name2, Name 3  
2                  10                     Name4, Name5  
3                  100                    Name 6  

目前我们在代码隐藏中执行此操作,但我希望通过SQL执行此操作,看看是否相当于任何性能改进。

1 个答案:

答案 0 :(得分:1)

你没有提到你的DBMS所以我假设P​​ostgreSQL:

SELECT id, 
       min(owner_id) as lowest_id,
       string_agg(name, ', ') as name_list
FROM the_table
GROUP BY id