--1 建表
create table 宇宙
( 行星等级 number ,行星名称 varchar2(50) ,上级行星等级 number);--2 数据准备
insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (1, '地球', 2);insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (2, '太阳', 3);insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (0, '月球', 1);insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (3, '银河', 4);insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (4, '宇宙', 5);insert into 宇宙 (行星等级, 行星名称, 上级行星等级)
values (5, '思维', null);commit;
--3 prior 这个关键字究竟如何理解
select * from 宇宙 start with 行星等级=1 connect by prior 行星等级=上级行星等级;select * from 宇宙 start with 行星等级=1 connect by 上级行星等级=prior 行星等级;--3.1 结果返回
行星等级 行星名称 上级行星等级
1 地球 2
0 月球 1--4 结论
以上面例子为例 prior 行星等级 就表示 当前节点 行星等级。
在整个SQL执行的一开始 ,当前节点就是 start with 行星等级=1 这个节点。