2013-04-10 56 views
0

我已經設計在SQL Server 2008中顯示這種格式的不同數據的2列的觀點:SQL連接多個值

Column1 Column2 
A  Text1 
B  Text2 
B  Text3 
C  Text4 
D  Text5 
D  Text6 
D  Text7 
E  Text8 

我有什麼做的就是視圖只顯示不同的列1與列2值的值連接起來是這樣的:

Column1 Column2 
A  Text1 
B  Text2, Text3 
C  Text4 
D  Text5, Text6, Text7 
E  Text8 

如果我使用的答案建議你的代碼似乎考慮爲複製到這個問題,然後我得到這種結果:

Column1 Column2 
A  Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 
B  Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 
C  Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 
D  Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 
E  Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 

編輯:從@techdo修改後的代碼工作,非常感謝。

+1

你正在使用什麼[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)? 'RDBMS'代表*關係數據庫管理系統*。 'RDBMS是SQL'的基礎,並且適用於所有現代數據庫系統,如MS SQL Server,IBM DB2,Oracle,MySQL等...... – 2013-04-10 04:54:33

+0

group by Column1? – 2013-04-10 04:55:58

+0

使用SQL Server 2008 – user2264507 2013-04-10 04:58:02

回答

2

請嘗試:

SELECT 
    Column1, 
    STUFF(
    (SELECT ',' + Column2 
     FROM YourTable t2 
     WHERE t2.Column1=t1.Column1 
     FOR XML PATH(''),type).value('.','nvarchar(max)'), 1, 1, '') AS Column2 
FROM 
    YourTable t1 
GROUP BY Column1 

檢查LINK瞭解更多詳情。

+0

這段代碼返回每列1行的所有column2值,如下所示: A Text1,Text2,Text3 Text1,Text4,Text5,Text6,Text7,Text8 B Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 C Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8 – user2264507 2013-04-10 21:05:18

+0

添加'where'條件在'Column1'上。請檢查編輯的答案。 – TechDo 2013-04-11 04:42:38

+0

我只有一張桌子。 – user2264507 2013-04-11 21:19:15