用于SQL查询的逗号分隔结果

时间:2016-08-04 07:46:40

标签: sql

我有一个表location,其中包含A1, A2, A3...列中的值id等。我还有另一张表location_color

A1   blue
A1   red
A1   green
A2   yellow
A2   red
A3   blue
A3   red
.
.

现在我想查询,结果就像这样

blue,red,green
yellow,red
Blue, red

我的查询是

select location_color.color
from location_color
where location.id = location_color.location_id

但它不起作用。

1 个答案:

答案 0 :(得分:1)

假设您正在使用SQL Server,可以使用以下内容:

SELECT location_id, stuff((
        select DISTINCT ',' + u.location_color
        from #temp u
        where u.location_id = t.location_id
        for xml path('')
    ),1,1,'') as location_color_csv
FROM #temp t
GROUP BY t.location_id