2015-06-19 33 views
-1

我有如下表:T-SQL:結合行一行

number word 
====== ==== 
1  AAA 
2  BBB 
2  CCCC 
4  CCCC 
4  BBB 
4  AAA 

現在我想創建一個新的表,其中「一把手」只發生在一排。 「單詞」中的相應值應轉換爲逗號分隔字符串。

結果表:

number word 
====== ==== 
1  AAA 
2  BBB,CCCC 
4  CCCCC,BBB,AAA 

該如何解決與T-SQL?提前致謝。

+2

谷歌:「SQL Server的彙總字符串連接」 。 –

+1

http://codecorner.galanter.net/2009/06/25/t-sql-string-aggregate-in-sql-server/ –

回答

2

我開始,所以我可能也張貼太礦演示...

CREATE TABLE #test 
(
    ID tinyint 
    ,Word varchar(20) 
); 
INSERT INTO #test 
VALUES 
(1,'aaa') 
,(1,'bbb') 
,(2,'abc') 
,(2,'def') 
,(2,'ghi') 
,(3,'zzz'); 

SELECT DISTINCT 
a.ID 
,STUFF((
    SELECT 
     ',' + b.Word 
    FROM #test b 
    WHERE a.ID = b.ID 
    FOR XML PATH('') 
),1,1,'') AS [Contains] 
FROM #test a 
+0

謝謝。這正是我需要的! – uhu

0

您需要使用FOR XML這裏是它如何工作的SQL FIDDLE

+2

請不要發佈「僅鏈接」答案。鏈接的內容可能會消失。張貼實際的代碼。 –