如何序列化(以逗号分隔的列表)SQL行
我目前有一个视图,其中列的行为:如何序列化(以逗号分隔的列表)SQL行,sql,sql-server,Sql,Sql Server,我目前有一个视图,其中列的行为: ID,Name 我想添加第三列Properties,它必须包含以逗号分隔的属性列表。我可以从联接表中获取属性,但此时联接将为每个属性返回一个单独的行。对于逗号分隔的列表,最好的方式是什么 在过去,我认为我使用了一个带有光标的用户定义函数。如果我能在没有UDF的情况下做到这一点就太好了,但我不是100%确定。如果没有,我相信我可以用一个更智能的UDF来摆脱光标 SELECT ID, Name, Properties = STUFF(( SELECT ','
ID,Name
我想添加第三列Properties
,它必须包含以逗号分隔的属性列表。我可以从联接表中获取属性,但此时联接将为每个属性返回一个单独的行。对于逗号分隔的列表,最好的方式是什么
在过去,我认为我使用了一个带有光标的用户定义函数。如果我能在没有UDF的情况下做到这一点就太好了,但我不是100%确定。如果没有,我相信我可以用一个更智能的UDF来摆脱光标
SELECT ID, Name, Properties = STUFF((
SELECT ',' + PropertyName FROM dbo.Properties
WHERE ID = x.ID
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
FROM dbo.ViewName AS x
GROUP BY ID, Name;