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 服务器本地没有存 ...
随机推荐
- uLua学习之调用Lua函数(五)
前言 在我开始这个系列的第一篇文章中,我就提到了Lua脚本用来实现宿主脚本的配置性和扩展性.上节说到的调用外部Lua脚本就对应了它的两大特性之一的配置性,那么另一大特性如何来体现呢?这就要说我们今天的 ...
- mysql用户权限操作
mysql用户权限操作1.创建用户mysql -urootcreate database zabbix default charset utf8;grant all on zabbix.* to za ...
- Java的几种加载驱动的方法
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2.DriverManager.registerD ...
- NYOJ-255-C小加 之 随机数
原题链接 C小加 之 随机数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 ACM队的“C小加”同学想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用 ...
- IOS 监听slider滑动
// 监听slider滑动 - (IBAction)valueChnage:(UISlider *)sender; @property (weak, nonatomic) IBOutlet NJVie ...
- memcached for .net on windows
memcached for windowshttp://www.cnblogs.com/dudu/archive/2009/07/19/1526407.htmlhttp://www.cnblogs.c ...
- 忽略mysql库的同步
忽略mysql库的同步,请使用: stop slave sql_thread; change replication filter replicate_ignore_db=(mysql);
- Java的内存回收机制详解X
http://blog.csdn.net/yqlakers/article/details/70138786 1 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前 ...
- top命令交互快捷键
#toptop - :: up :, users, load average: 0.17, 0.12, 0.14 Tasks: total, running, sleeping, stopped, z ...
- 【转】android调试工具DDMS的使用详解
具体可见http://developer.android.com/tools/debugging/ddms.html. DDMS为IDE和emultor.真正的android设备架起来了一座桥梁.开发 ...