Sql 如何附加共享相同唯一标识符的重复记录?

Sql 如何附加共享相同唯一标识符的重复记录?,sql,oracle,aggregate-functions,Sql,Oracle,Aggregate Functions,如何将下面的地址列附加到其中?它们共享相同的唯一标识符,但会重复,因为它基本上会打开多个房间 KeyID | KeyName | Room 00001 | 452-BF | A-206 00001 | 452-BF | A-207 00001 | 452-BF | A-208 以下是我的sql: Select k.keyid, k.keyname, r.room from key k join room r on k.keyid = r.keyid ; 如何格式化我的slq,以获得以下

如何将下面的地址列附加到其中?它们共享相同的唯一标识符,但会重复,因为它基本上会打开多个房间

KeyID | KeyName | Room
00001 | 452-BF  | A-206
00001 | 452-BF  | A-207
00001 | 452-BF  | A-208
以下是我的sql:

Select
k.keyid,
k.keyname,
r.room
from key k
join room r
on k.keyid = r.keyid
;
如何格式化我的slq,以获得以下结果:

KeyID | KeyName | Room
00001 | 452-BF  | A-206,A-207,A-208
另外,我使用的是oracle sql(12.1.0.2.0)的12c版本

您使用的
listag()

您可以使用
listag()

Select k.keyid, k.keyname,
       listagg(r.room, ',') within group (order by r.room) as rooms
from key k join
     room r
     on k.keyid = r.keyid
group by k.keyid, k.keyname;