闲话少说,直入主题!
此文是基于其他博客部分框架以及大致内容进行了个人层面的详细分析和改进。
1. wmconcat
同一列的列值,根据相应分组规则 ,将各自组内的值,存于同一个单元格里,存于clob字段中,以','间隔;
如果直接使用wmconcat而没有分组,则是将同一个列的值,转换后都存于同一个单元格里,默认是以逗号','间隔,可以改变。
(1)创建测试表并插入数据
create table test_wm_concat(id number,name varchar2(20));
insert into test_wm_concat values(1,'a');
insert into test_wm_concat values(1,'b');
insert into test_wm_concat values(1,'c');
insert into test_wm_concat values(2,'d');
insert into test_wm_concat values(2,'e');
(2)查询测试表test_wm_concat的数据
select * from test_wm_concat;

(3)使用wm_concat查询数据(直接查询以及分组后查询)
select wm_concat(name) name from test_wm_concat;

可以通过to_char将clob转成varchar2的形式
select to_char(wm_concat(name)) name from test_wm_concat;
按照id分组,合并name,同组的存于一个clob字段中
select id, wm_concat(name) name from test_wm_concat group by id;

(4)使用wm_concat查询数据,存于clob字段中,以'|'间隔,而默认是','
select replace(wm_concat(name

本文详细介绍了如何在Oracle数据库中进行行列转换,包括wmconcat函数的使用,如何通过wmconcat进行列值合并、解析,以及listagg函数的排序功能。同时,文章探讨了pivot的行转列操作和unpivot的列转行操作,展示了不同方法进行数据转换的实例,帮助理解这些功能在实际应用中的效果。
最低0.47元/天 解锁文章
1803

被折叠的 条评论
为什么被折叠?



