2013-07-21 40 views
3

我有一個名爲的sampleData表看起來像這樣:分組數據分離格式

col1 col2  
    1  a  
    1  b  
    1  c  
    2  d  
    2  e 
    3  f 

我需要在以下格式的數據:

col1 col2  
1  a,b,c   
2  d,e  
3  f 

是否有這樣做的一種方式也使用CTE?

+0

http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string?rq=1 [模擬組\ _concat的MySQL函數的 – KekuSemau

+0

可能重複在Microsoft SQL Server 2005?](http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-microsoft-sql-server-2005) –

回答

5

如果您使用SQL Server 2005及以上版本,則可以使用STUFF

SELECT 
    [col1], 
    STUFF(
     (SELECT ',' + [col2] 
      FROM Table1 
      WHERE [col1] = a.[col1] 
      FOR XML PATH ('')) , 1, 1, '') AS col2 
FROM Table1 AS a 
GROUP BY [col1] 
+0

謝謝,有沒有這樣做的方法使用CTE在我原來的要求,這使得非常緩慢 – satyajit

+0

這是你想要的? http://sqlfiddle.com/#!3/d5558/2 –