0

我有一个包含 2 列 ID(不是 PK)和 NAME 的表。我想获取所有具有相同 ID 的名称并将它们连接到一列 - 我该怎么做?

例如

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

结果 :

1   A
2   B
3   CDF
5   E
4

2 回答 2

1

试试这个代码

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

在 Oracle 中,GROUP_CONCAT() 是名称 wm_concat()。

于 2013-10-08T07:40:43.843 回答
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
于 2013-10-08T08:08:35.083 回答