如何序列化(以逗号分隔的列表)SQL行

问题描述:

我现在有沿的线行的视图:如何序列化(以逗号分隔的列表)SQL行

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; 
+0

legend-thanks! – 2012-04-04 17:17:46