闲话少说,直入主题!
此文是基于其他博客部分框架以及大致内容进行了个人层面的详细分析和改进。
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 re