oracle中迭代查询,oracle 迭代查询

本文介绍了如何使用Oracle SQL进行递归查询,以构建后台菜单的层级结构。通过创建tbl_menu表,插入数据并设置序列,然后执行查询SQL,展示了如何从根目录开始,按照父ID连接各个菜单项,最终形成层次分明的菜单列表。
摘要由CSDN通过智能技术生成

Oracle 迭代查询, 以后台菜单作为示例

这是要准备的sql

cdec0645add3fc3c328197dda5c76203.png

81178cc93a2a3bb5048d90d76e7ec935.png

1 create tabletbl_menu(2 id number primary key,3 parent_id number default 0,4 name varchar2(20) not null,5 direntions clob,6 info1 clob,7 info2 clob,8 info3 clob9 );10

11 createsequence seq_tbl_menu;12

13 insert into tbl_menu (id, name, direntions) values (seq_tbl_menu.nextval, ‘虚拟根目录‘, ‘所有菜单的虚拟根目录其他所有菜单都直接或间接的是它的子菜单‘);14 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 1, ‘权限管理‘);15

16 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, ‘资源管理‘);17 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, ‘角色管理‘);18 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, ‘用户管理‘);19

20 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 3, ‘菜单页面管理‘);21 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 3, ‘非菜单页面管理‘);22

23 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 4, ‘角色管理‘);24 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 4, ‘角色权限‘);25

26 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 5, ‘用户管理‘);27 insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 5, ‘用户权限‘);

View Code

这是查询的sql

cdec0645add3fc3c328197dda5c76203.png

81178cc93a2a3bb5048d90d76e7ec935.png

1 select

2 id,3 parent_id,4 case

5 when parent_id = 0 then ‘------‘||name6 when parent_id = 1 then ‘------------‘||name7 when parent_id != 1 or parent_id != 0 then ‘------------------------‘||name8 else name end

9 fromtbl_menu10 start with id = 1

11 connect by prior id =parent_id12 order by id

View Code

这是效果

ID PARENT_ID CASEWHENPARENT_ID=0THEN‘------

10------虚拟根目录

21------------权限管理

32------------------------资源管理

42------------------------角色管理

52------------------------用户管理

63------------------------菜单页面管理

73------------------------非菜单页面管理

84------------------------角色管理

94------------------------角色权限

105------------------------用户管理

115------------------------用户权限

原文:http://www.cnblogs.com/linma/p/4288440.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值