1.Start With关键字
https://www.cnblogs.com/zyzdisciple/p/7873584.html
1 select … from tablename
2 start with 条件1
3 connect by 条件2
4 where 条件3;
实例:
create table DEMO (
ID varchar2(10) primary key,
DSC varchar2(100),
PID varchar2(10)
)
--插入几条数据
Insert Into DEMO values ('00001', '中国', '-1');
Insert Into DEMO values ('00011', '陕西', '00001');
Insert Into DEMO values ('00012', '贵州', '00001');
Insert Into DEMO values ('00013', '河南', '00001');
Insert Into DEMO values ('00111', '西安', '00011');
Insert Into DEMO values ('00112', '咸阳', '00011');
Insert Into DEMO values ('00113', '延安', '00011');
--自底向上
Select * From DEMO
Start With ID = '00113'
Connect By Prior PID = ID
--结果
00113 延安 00011
00011 陕西 00001
00001 中国 -1
--自上向下
Select * From DEMO
Start With ID = '00001'
--用 Start Wiht PID = '-1' 结果不变
Connect By Prior ID = PID
--结果
00001 中国 -1
00011 陕西 00001
00111 西安 00011
00112 咸阳 00011
00113 延安 00011
00012 贵州 00001
00013 河南 00001
--Where 删除
Select ID, PID, DSC
From DEMO
WHERE ID <> '00011'
Start With ID = '00001'
Connect By Prior ID = PID
--结果
00001 -1 中国
00111 00011 西安
00112 00011 咸阳
00113 00011 延安
00012 00001 贵州
00013 00001 河南