我有以下声明:SELECT STUFF和where子句来缩小结果
SELECT Stuff(
(SELECT N', ' + activity FROM contact_categories FOR XML PATH(''),TYPE)
.value('text()[1]','nvarchar(max)'),1,2,N'')
这显示从活动列的所有信息保存在一个字符串。我想要做的是将它作为一个字符串返回,但对于每个主键。
所以在表中它看起来像这样
Contact Activity
1 Green
1 Red
1 Blue
2 Green
2 Red
2 Blue
3 Green
3 Red
3 Blue
而不是显示它作为绿,青,绿,红,红,红,蓝,青,蓝都在一个字符串。我想它显示:
1 Green, Red, Blue
2 Green, Red, Blue
3 Green, Red, Blue
我试图添加和where子句:
SELECT Stuff(
(SELECT N', ' + activity FROM contact_categories FOR XML PATH(''),TYPE)
.value('text()[1]','nvarchar(max)'),1,2,N'')
FROM contact_categories
WHERE contact_number = #
标签您正在使用的数据库管理系统。 (产品特定查询。) – jarlh
Tagged,thanks! – NickR193
[ListSQL在SQLSERVER]中可能有重复(https://stackoverflow.com/questions/15477743/listagg-in-sqlserver) –