sql - oracle中如何组合成一条记录
问题描述
嗨,我对 oracle 有疑问
我想做以下
select name, type from table_1 where name = 'carlos' group by type, name;
我返回了两条记录
|name |type|
|Carlos| 3 |
|Carlos| 4 |
我想要做的是从以下表格中获取一条记录
|name| type|
|Carlos| 3,4 |
我用 rtrim 试过了,但它让我得到了很多次我只希望它出现一次的类型
Select Name, rtrim(xmlagg(xmlelement(e,type||’,’) type
Where name = 'carlos' group by name;
我返回的一条记录
|name| type|
|Carlos| 3,4,4,4|
你可以帮帮我吗
解决方案
您只需要使用listagg()
功能:
select name, listagg(type,',') within group (order by type)
from table_1
where name = 'carlos'
group by name
如果您有重复type
的值并希望在逗号分隔的字符串结果中有所不同,请使用:
select name, listagg(type,',') within group (order by type)
from
(
select distinct name, type
from table_1
where name = 'carlos'
)
group by name
推荐阅读
- github - Github 存储库文件访问
- python - discord.py bot 正确构建在 heroku 上,但显示脱机
- arrays - SWIFT:我无法解析来自 URL 的数据?
- swiftui - 参数 SwiftUI 中的可选绑定
- reactjs - 在reactjs中使用令牌登录时检查用户是否登录的最佳方法是什么
- c - 如何将包含十六进制数字的字符串转换为c中的int
- android - 使用 twitter kit sdk 在我的 android 应用程序中使用 twitter 登录时授权失败
- r - 变量“PKG_CXXFLAGS”中的不可移植标志
- tomcat - 如何使用两个 SSL 配置 Tomcat7
- c# - 无法加载 DLL Microsoft.Data.SqlClient.x86.dll(来自 HRESULT 的异常:0x800707E)