oracle中的递归查询

一、oracle中的递归查询上下级部门关系
采用的语法为 start with 。。。 connect by ..... = prior ....
我们部门表中存在这样几条记录
idparent_idname
1null财大
21计科
31英语
42软工8班
53英语班6班
1.当我们想要获取到财大下面的所有子部门,我们可以采用这样的写法:
SELECT * FROM t_department t
START WITH t.id = 1
CONNECT BY t.parent = prior t.id
prior的英文解释为先前的,这个递归查询中就是作为查询条件,去查询表中记录的parent_id 和本次查询相等的记录
我们查询的结果排序是从一个部门查到底结束,相当于一个树形结构的遍历,查询到的结果显示为:
idparent_idname
1null财大
21计科
42软工8班
31英语
53英语班6班


2.当我们想要查找上级部门的时候,同理:
SELECT * FROM t_department t
START WITH t.i = '4'
CONNECT BY t.id = prior t.parent_id
我们拿着parent_id值作为查询的条件,去表中查询id和parent_id相等的记录:
idparent_idname
42软工8班
21计科
1null财大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值