oracle 迭代查询
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 迭代查询的更多相关文章
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样 ...
- Oracle树查询及相关函数
Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了.依托于该语法,我们可以将一个表形结构的中以树的顺序列出来.在下面列述了Or ...
- Oracle树查询总结
最近在做公司的项目中遇到一个问题,多级级联导航菜单,虽然只有三级目录,但<li>中嵌套<ul>,数据库表结构如下: CREATE TABLE FLFL ( ID NUMBER ...
- Oracle层次查询
Oracle层次查询的语法如下: 下面根据两道“烧脑”的题具体来体现: 1. 根据时间先后顺序,十二星座的英文名称用逗号串起来为'Aries,Taurus,Gemini,Cancer,Leo,Virg ...
- 【SQL】Oracle分页查询的三种方法
[SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
- Oracle参数化查询
Oracle参数化查询默认是根据顺序绑定的 select * from table where name=:p1 and (select id from table2 where name=:p1); ...
- mysql和oracle 分页查询(转)
最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...
- DNS的递归查询和迭代查询
百度运维部二面,直接懵逼的节奏 (1)递归查询 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求, 必须使用一个准确的查询结果回复客户机. 如果DNS 服务器本地没有存 ...
随机推荐
- C++ int转string / string转int
c++ 最近标准添加了stringstream类,可以非常简单的对int 和 string 进行相互的转化 //int 转 string void int2str(const int& i, ...
- sublime完美编码主题
Theme – Soda 使用Ctrl+Shift+P快捷键或者进入菜单:Preferences(首选项) - Package Control(插件控制),调出命令输入框,输入Install Pack ...
- LeetCode Remove Duplicates from Sorted Array II 删除整型数组中的重复元素并返回剩下元素个数2
class Solution { public: int removeDuplicates(int A[], int n) { ],*e=&A[]; //s指向“连续数字”的第一个,e往后遍历 ...
- 进程peb结构、获得peb的方法
PEB :进程环境块TEB.ProcessEnvironmentBlock成员就是PEB的结构体地址TEB结构体位于FS段选择符所指的段内存的起始地址处,且ProcessEnvironmentBloc ...
- Redis常用特性
发布订阅 ·服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责解除客户端和被 ...
- 在RichTextBox控件中替换文本文字
实现效果: 知识运用: RichTextBox控件的SelectedText属性 实现代码: private void button1_Click(object sender, EventArgs e ...
- 2018.2.2 java中的Date如何获取 年月日时分秒
package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; pub ...
- 解决session过期跳转到登录页并跳出iframe框架(或者layui弹出层)
当用户长时间停留在管理界面没有操作,等到session过期后,进行了操作,那么只是iframe跳转到login页面,这不是我们想要的结果.解决方法:在login页面加一个逻辑判断: <scrip ...
- Java自带工具包StringUtils包含方法
//导入包 import org.apache.commons.lang3.StringUtils //判断不为空 不包含空格 StringUtils.isNotEmpty(" " ...
- 分享12款最佳的Bootstrap设计工具
设计师总会渴望有一些新奇有趣的设计工具来提高工作效率,而Bootstrap就是您的不二选择.2013年Bootstrap得到了广泛普及, 它是开发者较为常用的框架之一,本文我们将分享12款最佳的Boo ...