create table PREREQ
(
COURSE_ID NVARCHAR2(20),
PREREQ_ID NVARCHAR2(20)
)
;
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('001', 'a-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('a-001', 'b-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('b-001', 'c-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('002', 'a-002');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('a-002', 'b-002');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('b-002', 'c-002');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('c-002', 'd-002');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('010', 'e-010');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('c-001', 'd-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('d-001', 'e-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('001', 'a1-001');
insert into PREREQ (COURSE_ID, PREREQ_ID)
values ('d-001', 'e2-001');
commit;
select * from prereq t
start with t.course_id = '001'
connect by prior t.prereq_id = t.course_id
参考 : http://laoli5290.iyunv.com/blog/1563289 |