2013-10-08 3 views
0

У меня есть таблица с 2 столбцами ID (не PK) и NAME. Я хочу взять все имена с одинаковым идентификатором и подключить их к одному столбцу - как я могу это сделать?Как подключить в один столбец все записи, имеющие один и тот же идентификатор?

например.

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-a-oracle-sql-query-that-aggregates-multiple-rows-to-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 можно получить с 11г. Выпуск 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 
Смежные вопросы