2012-01-17 10 views
0

2つのIDを持つ2つの列テーブルがあります。各ペアは一意です。私は、カーソルを作成し、IDcolum1に一つ一つの項目を反復処理できSQL Server 2005の各インスタンスにコンマ区切りリストを作成する必要がありますか?

IDcolumn1value1 | IDColumn2value1, IDColumn2Value2, IDColumn2Value3; IDcolumn1value2 | IDcolumn2Value2, IDcolumn2Value4 

が、そこにあることを考える:私は最初の列、IEのインスタンスごとにカンマ区切りのリストを作成する方法を見つけるのが大好きです〜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 

答えて

0

あなたはカーソルなしでカンマ区切りのリストを生成するためのXMLパスに使用することができます。 Check out this article

関連する問題