oracle 10g 行列转换

来源:百度文库 编辑:神马文学网 时间:2024/04/28 16:03:06
create table idtable (id number,name varchar2(30));
insert into idtable values(10,'ab');
insert into idtable values(10,'bc');
insert into idtable values(10,'cd');
insert into idtable values(20,'hi');
insert into idtable values(20,'ij');
insert into idtable values(20,'mn');
insert into idtable values(30,'ZA');
insert into idtable values(30,'ZB');
insert into idtable values(30,'ZC');commit;select * from idtable--按同一个ID,把行内容转换为列内容
select id,wmsys.wm_concat(NAME) NAME from idtable group by id
--每行ID都把相同ID的行内容转换为列,然后根据ID的排序进行内容叠加.
select id,wmsys.wm_concat(NAME) over (order by id) NAME from idtable
--按照ID,name进行排名,每一行内容都汇总前一行的内容(内容叠加)
select id,wmsys.wm_concat(NAME) over (order by id,NAME) NAME from idtable
--每行ID都把条件相同ID的行内容转换为列内容
select id,wmsys.wm_concat(NAME) over (partition by id) NAME from idtable