2010-04-12 23 views
0

alt text http://img248.imageshack.us/img248/1797/updatetable.png使用表的行更新列,不使用遊標或任何其他迭代

更新使用每個OrderId的CategoryCode的組合列。在這個例子中有兩個OrderIds 990和986.需要分別連接這兩個類別。

理想的結果是這樣的。

990 Bus, Pub, Shoot, Club, Bus, Hos 

謝謝。

+0

是否在逗號分隔列表中的術語順序很重要? – 2010-04-12 08:21:45

+0

沒有順序並不重要。只需要用逗號分隔的一個字符串中的所有訂單代碼。 – Kashif 2010-04-12 09:22:22

+0

在例子中最大數字2還是更多? – Unreason 2010-04-12 15:57:34

回答

0
UPDATE test 
SET combined = Left(j.combined, Len(j.combined) - 1) 
FROM test t 
    JOIN (SELECT a.orderid, 
       (SELECT categorycode + ',' 
       FROM test b 
       WHERE b.orderid = a.orderid 
       ORDER BY orderid 
       FOR XML PATH('')) AS combined 
     FROM test a 
     GROUP BY orderid) AS j 
    ON j.orderid = t.orderid 
相關問題