OracleMySQL

Oracle - start with connect by 树

2018-01-07  本文已影响22人  533e11a308d9

Oracle - start with connect by 树操作

准备工作:建表、插数据

create table tprior
( parentid number(10),
  subid    number(10)
);
 
insert into tprior values ( 1, 2 );
insert into tprior values ( 1, 3 );
insert into tprior values ( 2, 4 );
insert into tprior values ( 2, 5 );
insert into tprior values ( 3, 6 );
insert into tprior values ( 3, 7 );
insert into tprior values ( 5, 8 );
insert into tprior values ( 5, 9 );
insert into tprior values ( 7, 10 );
insert into tprior values ( 7, 11 );
insert into tprior values ( 10, 12 );
insert into tprior values ( 10, 13 );
 
commit;

 

表数据概况、B-Tree 结构

select * from tprior;

SQL

select parentid, subid, level
  from tprior
 start with subid = 7
connect by subid = prior parentid
 order by level;
select parentid, subid, level
  from tprior
 start with subid = 7
connect by prior subid = parentid
 order by level;
select parentid, subid, level
  from tprior
 start with parentid = 7
connect by subid = prior parentid
 order by level;
select parentid, subid, level
  from tprior
 start with parentid = 7
connect by prior subid = parentid
 order by level;
select parentid, subid, level
  from tprior
 where parentid > 3
 start with subid = 12
connect by subid = prior parentid
 order by level;
上一篇 下一篇

猜你喜欢

热点阅读