是否需要为SQL Server 2005中的每个值实例创建逗号分隔的列表?

是否需要为SQL Server 2005中的每个值实例创建逗号分隔的列表?,sql,sql-server-2005,Sql,Sql Server 2005,我有一个2列的表,有2个ID,每对都是唯一的。我想找到一种方法为第一列的每个实例创建一个逗号分隔的列表,即: IDcolumn1value1 | IDColumn2value1, IDColumn2Value2, IDColumn2Value3; IDcolumn1value2 | IDcolumn2Value2, IDcolumn2Value4 我可以创建一个游标,并迭代IDcolum1中的每一项,但考虑到有~8k对,这可能不是最有效的 目前我有: DECLARE @listStr VARC

我有一个2列的表,有2个ID,每对都是唯一的。我想找到一种方法为第一列的每个实例创建一个逗号分隔的列表,即:

IDcolumn1value1 | IDColumn2value1, IDColumn2Value2, IDColumn2Value3; IDcolumn1value2 | IDcolumn2Value2, IDcolumn2Value4
我可以创建一个游标,并迭代IDcolum1中的每一项,但考虑到有~8k对,这可能不是最有效的

目前我有:

DECLARE @listStr VARCHAR(MAX)
SELECT  @listStr = COALESCE(@listStr+',' , '') + Component_Softpaq.SoftpaqNumber
FROM         Softpaq_SKU INNER JOIN
    ComponentVersion ON Softpaq_SKU.ComponentVersionID = ComponentVersion.ComponentVersionID INNER JOIN
    ComponentPass ON ComponentVersion.ComponentVersionID = ComponentPass.ComponentVersionID INNER JOIN
    Component_Softpaq ON ComponentPass.ComponentPassID = Component_Softpaq.ComponentPassID
group by Softpaq_SKU.SKUID, Component_Softpaq.SoftpaqNumber

SELECT @listStr

可以使用FOR XML PATH生成不带光标的逗号分隔列表