--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 这个节点。