2013-10-08 33 views
0

我有一個2列ID(不是PK)和名稱的表。我想將所有具有相同ID的名稱連接到一列中 - 我怎麼能做到這一點?如何將所有具有相同ID的記錄連接到一列中?

例如

ID     Name 
----    ---- 
1     A 
2     B  
3     C 
3     D   
5     E 
3     F 

結果:

1 A 
2 B 
3 CDF 
5 E 
+2

在MySQL中是'GROUP_CONCAT()' - 看到這些答案的Oracle版本:http://stackoverflow.com/questions/1120706/is -there-an-oracle-sql-query-that-aggregates-multiple-rows-into-one-row http://stackoverflow.com/questions/16771086/is-there-any-function-in-oracle-similar- like-group-concat-of-mysql – DanFromGermany

+0

有沒有答案的工作? –

回答

1

嘗試此代碼

SELECT Id,GROUP_CONCAT(Name SEPARATOR ' ') FROM tablename GROUP BY Id; 

在Oracle的GROUP_CONCAT()是名稱wm_concat()。

+0

我在oracle中運行了代碼,得到了ora-00904'wm_concat ivalid identifier'。你可以請添加確切的語法。 thanx – user2663377

+0

請檢查您使用的數據庫版本。 wm_concat可從11g第2版獲得 –

+0

爲什麼1天后你不接受? –

0

隨着MS SQL Server的你可以試試這個:

create table test 
(id int, name varchar(10)) 

insert test (id,name) values (1,'A') 
insert test (id,name) values (2,'B') 
insert test (id,name) values (3,'C') 
insert test (id,name) values (3,'D') 
insert test (id,name) values (5,'E') 
insert test (id,name) values (4,'F') 


SELECT DISTINCT id AS Tabelle, 
       Spalten = STUFF((SELECT DISTINCT ',' + name 
            FROM test a 
            WHERE a.id = b.id 
           FOR XML PATH ('')), 1, 1, '') 
from test b 
相關問題