2

我目前有一个视图,其中包含以下行:

ID, Name

我想添加第三列Properties,该列必须包含逗号分隔的属性列表。我可以从连接表中获取属性,但此时连接将为每个属性返回一个单独的行。为逗号分隔列表拉单行的最佳方法是什么?

在过去,我想我已经使用了带有光标的用户定义函数。如果我可以在没有 UDF 的情况下做到这一点,那就太好了,但我不能 100% 确定。如果没有,我相信我可以用更智能的 UDF 摆脱光标。

4

1 回答 1

5
SELECT ID, Name, Properties = STUFF((
    SELECT N',' + PropertyName FROM dbo.Properties
    WHERE ID = x.ID
    FOR XML PATH(''), 
    TYPE).value(N'./text()[1]', N'nvarchar(max)'), 1, 1, N'')
FROM dbo.ViewName AS x
GROUP BY ID, Name;
于 2012-04-04T17:09:52.563 回答