sql - 如何附加具有相同唯一标识符的重复记录?
问题描述
如何将下面的地址列附加到一个中?它们共享相同的唯一标识符,但由于它基本上打开多个房间而重复。
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
我也在 12c 版本的 oracle sql(12.1.0.2.0)
解决方案
您使用listagg()
:
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;
推荐阅读
- java - 使用 RxJava2 正确处理背压和并发
- bash - Script Bash Solaris SS7 Query 信令点
- angular - Angular 6:多种配置(twas 环境)
- python - 将嵌套列表转换为 Pandas DF
- python - 获取类属性的属性名
- redux - RXJS 订阅主题 - 操作必须是普通对象。使用自定义中间件进行异步操作
- java - Eclipse 霓虹灯挂起加载 org.eclipse.ui.navigator
- python - 如何使用 discord.py 事件处理程序 on_voice_state_update 仅在用户加入语音频道时运行
- http - 避免对缓存文件的请求
- c# - dotnet core 2 Web C# 对象引用未设置为对象的实例?