Oracle_查出最上层节点(或指定层级)

前言

场景:根据当前节点人员的最上层人员,或是指定层级人员,常用于推广关系中人员关系查询。
Oracle有封装好的函数,封装了递归或者循环嵌套的复杂逻辑,直接使用即可,以下为代码和注释;

select m.id,
       m.parentid,
       m.name,
       connect_by_root(m.id) root_id, -- 找到指定节点的ID(最上级的id)
       connect_by_root(m.name) root_name -- 找到指定节点的name(最上层的name)
 from marketer  m
where m.name = '李大' --节点起始点(即你想要找谁的最上级),批量查询直接使用in关键字即可
start with m.layer= 1 -- 指定到根节点(可以改变层级数,1代表根节点,2代表次节点,以此类推),注意,此字段根据自己的表修改,找到代表层级的字段即可。
connect by prior m.id= m.parentid --条件限制,节点间关联的条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值