表数据如下:create table bus(
dstart varchar2(4),
dend varchar2(4)
);
insert into bus values('A','B');
insert into bus values('B','C');
insert into bus values('A','D');
insert into bus values('D','M');
insert into bus values('C','E');
insert into bus values('F','M');
commit;
要求显示
PATH
------------
A-B
A-B-C
A-B-C-E
A-D
A-D-M
使用sys_connect_by_path和树形函数
SELECT ltrim(sys_connect_by_path(dstart, '-'), '-') || '-' || dend path,
dstart,
dend,
LEVEL
FROM bus
START WITH dstart = 'A'
CONNECT BY nocycle PRIOR dend = dstart