ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 只需设定分隔符,完全自适应行转列~~

只需设定分隔符,完全自适应行转列~~

原创 Linux操作系统 作者:junsansi 时间:2007-09-14 00:00:00 0 删除 编辑

呵呵,又来一个行转列,难道我跟行转列卯上了?听说11g中有了更简单的法子来实现行列转换,黑黑,说不得以后还得再来一篇啊。


create table tmp5 (id number(2),name varchar2(10),code varchar2(50));
alter table tmp5 add constraint pk_tmp5 primary key (id);
insert into tmp5 values (1,'aaa','c001/c002/c007');
insert into tmp5 values (2,'bbb','c001/c003');
insert into tmp5 values (3,'ccc','c008/c0011/c029/c023');
insert into tmp5 values (4,'ddd','c102/c111/c112/c144/c167');

select id,
name,
--rn,
--code,
substr(code, st, decode(ed, 0, length(code), ed - st)) code
from (select id,
name,
code,
rn,
decode(rn, 1, 1, instr(code, '/', 1, rn - 1) + 1) st,
instr(code, '/', 1, rn) ed
from (select *
from tmp5,
(select rownum rn
from dual
connect by rownum <=
(select max(length(code)) -
max(length(replace(code, '/', ''))) + 1
from tmp5))))
where ed > 0
or st > 1
order by id, rn;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-22286/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-21

  • 博文量
    640
  • 访问量
    4100292