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

这是要准备的sql

 create table tbl_menu(
id number primary key,
parent_id number default 0,
name varchar2(20) not null,
direntions clob,
info1 clob,
info2 clob,
info3 clob
); create sequence seq_tbl_menu; insert into tbl_menu (id, name, direntions) values (seq_tbl_menu.nextval, '虚拟根目录', '所有菜单的虚拟根目录其他所有菜单都直接或间接的是它的子菜单');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 1, '权限管理'); insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, '资源管理');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, '角色管理');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 2, '用户管理'); insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 3, '菜单页面管理');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 3, '非菜单页面管理'); insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 4, '角色管理');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 4, '角色权限'); insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 5, '用户管理');
insert into tbl_menu (id, parent_id, name) values (seq_tbl_menu.nextval, 5, '用户权限');

这是查询的sql

 select
id,
parent_id,
case
when parent_id = 0 then '------'||name
when parent_id = 1 then '------------'||name
when parent_id != 1 or parent_id != 0 then '------------------------'||name
else name end
from tbl_menu
start with id = 1
connect by prior id = parent_id
order by id

这是效果

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 ------------------------用户权限

oracle 迭代查询的更多相关文章

  1. 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例

    前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样 ...

  2. Oracle树查询及相关函数

    Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了.依托于该语法,我们可以将一个表形结构的中以树的顺序列出来.在下面列述了Or ...

  3. Oracle树查询总结

    最近在做公司的项目中遇到一个问题,多级级联导航菜单,虽然只有三级目录,但<li>中嵌套<ul>,数据库表结构如下: CREATE TABLE FLFL ( ID NUMBER ...

  4. Oracle层次查询

    Oracle层次查询的语法如下: 下面根据两道“烧脑”的题具体来体现: 1. 根据时间先后顺序,十二星座的英文名称用逗号串起来为'Aries,Taurus,Gemini,Cancer,Leo,Virg ...

  5. 【SQL】Oracle分页查询的三种方法

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...

  6. 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)

    关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...

  7. Oracle参数化查询

    Oracle参数化查询默认是根据顺序绑定的 select * from table where name=:p1 and (select id from table2 where name=:p1); ...

  8. mysql和oracle 分页查询(转)

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...

  9. DNS的递归查询和迭代查询

    百度运维部二面,直接懵逼的节奏 (1)递归查询 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求, 必须使用一个准确的查询结果回复客户机. 如果DNS 服务器本地没有存 ...

随机推荐

  1. 网页title旁边的小图片

    网页title旁边的小图片设置,图片格式必须是.ico <link rel="icon" href="img/logo.ico" type="i ...

  2. vuejs 实现富文本

    <div v-html="ritchtext" style="font-size:32px;" v-if="!platform" &g ...

  3. Today is the first day of the rest of your life.

    Today is the first day of the rest of your life. 今天是你余下人生的第一天.

  4. Unity光晕剑效果的Shader简单实现

    最近遇到了一个需求,想要一种在刀剑上带有光晕的酷炫效果,甚至是还想要有闪烁呼吸效果,于是就写了一个简单的叫LightSwrod的Shader去实现,先上图看看效果吧. 简单展示 这是剑本身的样子 这是 ...

  5. Struct2标签的传值方式(转载)

    "#request.userList"> "center"> "id"/> : "username"/ ...

  6. JavaScript_HTML DEMO_2_事件

    如需在用户点击某个元素时执行代码,请向一个HTML事件属性添加JavaScript代码  OnClick=JavaScriptcript 对事件做出反应 HTML事件属性 使用HTML DOM来分配事 ...

  7. cms系统-帖子页面

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. 倍增LCA

    前言 在做树上问题时,我们经常会遇到 \(LCA\)(最近公共祖先)问题.曾经的我遇到这类问题只会\(O(n)\)暴力求解,学了倍增\(LCA\),就可以\(O(logn)\)解决了. 简介 倍增\( ...

  9. python 多进程简单调用

    python 多进程简 #!/usr/bin/env python #-*- coding:utf-8 -*- # author:leo # datetime:2019/5/28 10:03 # so ...

  10. Java代码工具箱之解析单行单列简单Excel

    1. 使用开源工具 jxl.jar 2. 功能:解析常规Excel.xls格式测试可行,xlsx未测试.Excel测试格式为常规类似table这种简单布局文件.第一行为标题,后面行为内容.代码 可正确 ...