connect by prior在菜单栏的完美应用

需求是:不同角色可以查看的菜单不同,菜单分等级,一级菜单(即根目录),二级菜单,三级菜单。需要最后查询出这个角色可以查看的所有菜单,包括根菜单,二级,三级

但是通常表里面配置的肯定是叶子节点,就是最后一层菜单,比如下面的XX规则设置,所以要查出所有的父节点



使用

--首先查出该角色已经配置的菜单编码,然后以该编码为叶子节点,查询所有的父节点的编码
--比如下面的例子,角色菜单关系表配置了160000,010000,051800

--在用connect by prior 父节点=子节点,含义是用右边的子节点查出所有的父节点

SELECT *
  FROM menu B
 WHERE B.USER_TYPE = 'PC'
 START WITH B.ITEM_CODE IN ('160000', '010000', '051800')
CONNECT BY PRIOR PARENT_CODE = ITEM_CODE
 ORDER BY ITEM_CODE;

大功告成,通过三个编码,查出他们的父节点,以及父节点的父节点

比如051800,的父节点是051400;051400的父节点是050000;050000的父节点是000000


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值