我的表格SC
具有以下格式:
Team Owner
------------------
A 1
A 2
B 3
B 4
我希望视图中的输出为:
Team Owners
-------------------
A 1,2
B 3,4
我尝试在视图的设计中使用FOR XML PATH:
STUFF((SELECT ', ' + temp.Owner
FROM (SELECT SC.Owner) temp
WHERE (SC.Owner = temp.Owner)
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 2, '') AS Owners
但它给了我一个错误,因为这是一个视图的设计,而不是标准的交易:
'附近的WHERE子句出错(' 无法解析查询文本。
关于如何实现我想要的任何建议?
答案 0 :(得分:3)
代码看起来像这样:
select team,
stuff((select ',' + sc2.owner
from sc sc2
where sc2.team = sc.team
for xml path ('')
), 1, 1, '') as owners
from sc
group by team;
答案 1 :(得分:0)
怎么样:
SELECT team, GROUP_CONCAT(owner ORDER BY owner ASC SEPARATOR ',') as owners FROM sc GROUP BY team