zoukankan      html  css  js  c++  java
  • oracle 迭代查询

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

    这是要准备的sql

     1 create table tbl_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 clob       
     9 );
    10 
    11 create sequence 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

     1 select
     2   id,
     3   parent_id,
     4   case 
     5     when parent_id = 0 then '------'||name 
     6     when parent_id = 1 then '------------'||name 
     7     when parent_id != 1 or parent_id != 0 then '------------------------'||name
     8   else name end
     9 from tbl_menu 
    10 start with id = 1
    11 connect by prior id = parent_id
    12 order by id
    View Code

    这是效果

    ID PARENT_ID CASEWHENPARENT_ID=0THEN'------
    1 0 ------虚拟根目录
    2 1 ------------权限管理
    3 2 ------------------------资源管理
    4 2 ------------------------角色管理
    5 2 ------------------------用户管理
    6 3 ------------------------菜单页面管理
    7 3 ------------------------非菜单页面管理
    8 4 ------------------------角色管理
    9 4 ------------------------角色权限
    10 5 ------------------------用户管理
    11 5 ------------------------用户权限

  • 相关阅读:
    SQL SET NOCOUNT (Transact-SQL)
    Delphi WinAPI DragAcceptFiles、DragQueryFile、DragFinish、DragQueryPoint
    Delphi Thread线程错误:Canvas doesn't allow drawing
    Delphi ADOQuery错误:ADOQuery1:commandtext does not return a result set
    医学-药物-未分类-胃舒平(复方氢氧化铝)
    SQL 查询时间超时已过期(SQL 2000、SQL2005、SQL2008、SQL2012等)
    SQL 数据库引擎语句 sp_executesql 的使用介绍(Transact-SQL)
    android 定位代码
    Centos7开放及查看端口
    非常详细的sklearn介绍
  • 原文地址:https://www.cnblogs.com/linma/p/4288440.html
Copyright © 2011-2022 走看看