朱哥发给我做的。
一、有如下表
id parentid name
1 0 电脑
2 1 笔记本
3 1 台式机
4 1 服务器
5 2 联想
6 5 T40
根据上表数据,查询出:
1 电脑
2 电脑 - 笔记本
3 电脑 - 台式机
4 电脑 - 服务器
5 电脑 - 笔记本 - 联想
6 电脑 - 笔记本 - 联想 - T40
--------------------------------------------------------
create table test_03(
id int,
parentid int,
name varchar2(20)
);
insert into test_03 values (1,0,'电脑');
insert into test_03 values (2,1,'笔记本');
insert into test_03 values (3,1,'台式机');
insert into test_03 values (4,1,'服务器');
insert into test_03 values (5,2,'联想');
insert into test_03 values (6,5,'T40');
commit;
select * from test_03;
select * from test_03 start with id = 6 connect by prior parentid = id;
select id, ltrim(sys_connect_by_path(name, '-'),'-') names
from test_03
start with id = 1
connect by prior id = parentid
order by id;