oracle SYS_CONNECT_BY_PATH 函数实现将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来...

先创建一个树形结构的表t_test

create table T_TEST
(
	ID    NUMBER,
	PID   NUMBER,
	TITLE VARCHAR2(30)
)
tablespace TEST
pctfree 10
initrans 1
maxtrans 255
storage
(
	initial 64K
	minextents 1
	maxextents unlimited
);

insert into T_TEST (ID, PID, TITLE) values (1, 0, '一一');
insert into T_TEST (ID, PID, TITLE) values (2, 0, '二二');
insert into T_TEST (ID, PID, TITLE) values (3, 1, '一三');
insert into T_TEST (ID, PID, TITLE) values (4, 1, '一四');
insert into T_TEST (ID, PID, TITLE) values (5, 3, '一三五');
insert into T_TEST (ID, PID, TITLE) values (6, 3, '一三六');
insert into T_TEST (ID, PID, TITLE) values (7, 2, '二七');
insert into T_TEST (ID, PID, TITLE) values (8, 2, '二八');
insert into T_TEST (ID, PID, TITLE) values (9, 7, '二七九');
insert into T_TEST (ID, PID, TITLE) values (10, 7, '二七十');
commit;

 
sys_connect_by_path 函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示 
 
--子id=父id 倒树型结构
--父id=子id   正树型结构  

先看子id=父id 倒树型结构例子:

select level ,id,pid,title,sys_connect_by_path( title , '/' ) as path
from t_test
--where level=3
start with id= 1
connect by prior id = pid order by pid; 

 
显示结果:



再看父id=子id   正树型结构 例子:

select level ,id,pid,title,sys_connect_by_path( title , '/' ) as path
from t_test
--where level=3
start with pid= 3
connect by prior pid = id order by pid; 

 结果显示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值