关于Oracle的结构化查询的问题

Connect… by …是在结构化查询中用到的,其基本语法如下所示:

Select … from tablename start by cond1
Connect cond2 where cond3

其中cond3是可选的,cond1是根节点的限定语句,当然也可以放宽限定条件,以取得多个根节点,实际上就是多棵树
Cond2是连接条件,其中用PRIOR表示上一条记录,比如

connect by prior id=parentid

就是说上一条的记录的ID是本条记录的parentid。
对于节点间的父子关系,prior运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是自顶向下还是自底向上。
下面分别就自顶向下和自底向上举2个例子:
第一个例子:自底向上
[img]http://dl.iteye.com/upload/attachment/457568/2e278f3d-0e54-326d-88e0-18e29f88f22b.jpg[/img]
查找叶节点为0104020101的所有父节点

Select * from table t start with t.yae049=’0104020101’ connect by prior t.yae100=t.yae049


第二个例子:自顶向下
[img]http://dl.iteye.com/upload/attachment/457570/528d9e47-3ba9-354d-9506-80493cd988c7.jpg[/img]
查找以0101为根节点的所有子节点

Select * from table t start with yae100=’0101’ connect by prior t.yae049=t.yae100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值