Oracle 多行数据合并成一行
来源:互联网 发布:windows密码忘了怎么办 编辑:程序博客网 时间:2024/05/29 17:05
方案一:wm_concat函数
select username, id, wmsys.wm_concat(subject) as subject, wmsys.wm_concat(score) as scorefrom STUDENTSCORESgroup by username, id
方案二:listagg函数
select username, id, LISTAGG(subject, '-') within group(order by subject) as subject, LISTAGG(score, ',') within group(order by score) as scorefrom STUDENTSCORESgroup by username, id
方案三:常规sql
select username, id, translate(ltrim(subject, '/'), '*/', '*,') as subject,translate(ltrim (score, '/'), '*/', '*,') as scorefrom (select row_number() over (partition by username, id order by username, id, lvl desc) as rn, username, id, subject, scorefrom (select username, id, level lvl, sys_connect_by_path (subject, '/') as subject, sys_connect_by_path (score, '/') as scorefrom (select username, id, subject, score, row_number() over (partition by username,id order by username, id) as num from STUDENTSCORES order by username, id)connect by username = prior username and id = prior id and num - 1 = prior num))where rn = 1;
注意:
- 方案一中默认分隔符为 ‘,’
- 方案二只适合11g之后的版本
阅读全文
0 0
- oracle多行数据合并成一行
- Oracle 多行数据合并成一行
- oracle查询多行数据合并成一行数据!
- oracle查询多行数据合并成一行数据
- oracle查询多行数据合并成一行数据
- oracle查询多行数据合并成一行数据
- 将多行数据合并成一行
- mysql 多行数据合并成一行
- mysql实现搜索多行数据合并成一行
- 多行数据合并成一行,cms相关
- 使用Notepad++将多行数据合并成一行
- mysql将多行数据合并成一行显示
- 使用Notepad++将多行数据合并成一行
- oracle10g 多行数据合并为一行
- 将多行数据合并为一行
- mysql 合并多行数据到一行
- mysql多行数据合并为一行
- SQL 语句行数据拆成多行及多行数据合并成一行的方法
- Android App架构指南
- Linux 查看文本,搜索命令
- GIT常用命令
- vue2.0嵌套路由实现豆瓣电影分页功能(附加豆瓣web-app)
- Centos 上安装mysql+修改初始密码
- Oracle 多行数据合并成一行
- Reference电阻的问题
- KMP
- 最长递增子序列长度+最长公共子序列
- Make PhD citations say "dissertation" rather than thesis
- 第五次作业
- stl vector list的使用
- 【死磕Java并发】-----J.U.C之并发工具类:Exchanger
- vue2.0 transition -- demo实践填坑