select id, productid, optionid
from tableA
where productid = 1
结果(id,productid,optionid)
1 1 1
2 1 2
3 1 5
我希望结果是(productid,optionids):
1 1,2,5
当然,我认为下面的查询应该产生上述结果
select productid, optionid
from tableA
group by productid
但是我把optionid放在哪个函数中?
答案 0 :(得分:1)
您可以使用FOR XML PATH
(在STUFF
函数的帮助下)来执行此操作。你不能分组,因为遗憾的是没有用于连接字符串的聚合函数。
select distinct a.productid,
stuff((select ','+cast(s.optionid as varchar(10))
from tableA s
where s.productid = a.productid
for XML path('')),1,1,'')
from tableA a