Oracle 递归查询:start with

 什么时候用到start with ?

   (1) 一张表中存放有目录树的相关数据(子类id , 父类id )

   (2)但是想展示为父子类型的数据给前台,或者列表(table)中,

   (3) 这个时候就可以考虑使用start with 了

 如何使用 --demo 附上,拷贝就能使用;

--创建表
create table demo2 (id_1 varchar2(10),id_2 varchar2(10),id_3 varchar2(10));

--向表中插入数据

insert into demo2 (ID_1, ID_2, ID_3) values ('A', 'A01', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('B', '', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('C', '', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('A01', '', 'A');

insert into demo2 (ID_1, ID_2, ID_3) values ('A0101', '', 'A01');

insert into demo2 (ID_1, ID_2, ID_3) values ('A010101', '', 'A0101');

insert into demo2 (ID_1, ID_2, ID_3) values ('B01', '', 'B');

insert into demo2 (ID_1, ID_2, ID_3) values ('B0101', '', 'B01');

insert into demo2 (ID_1, ID_2, ID_3) values ('B010101', '', 'B0101');

--递归查询
SELECT * FROM demo2
  start with id_1 in ('A', 'B', 'C')
    connect by prior id_1 = id_3

最终查询结果:

代码解释:

猜你喜欢

转载自blog.csdn.net/qq_30125555/article/details/82904220