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 服务器本地没有存 ...
随机推荐
- 从零开始的全栈工程师——js篇2.2
条件语句 补充: var a=“hello world” a这个变量是字符串了 对于里面每一个字母来说 他是字节 里面有11个字节 字节总数用length表示 如下: 根据上面的内容咱们又发现了一个运 ...
- Java正则表达式—小应用—简易爬虫
在上一篇中,学习了正则表达式的四个功能.即匹配.分割.替换.获取. 利用获取功能,可以实现简单的网页爬虫. 4,获取:将字符串中的符合规则的子串取出. 获取功能的操作步骤: 1,将正则表达式 ...
- jqGrid中multiselect: true 操作checkbox
在jqGrid中设置multiselect: true可以实现全选的操作,但怎么设置被选中的checkbox里面的值呢,做法如下:jQuery("#listTable").jqGr ...
- crontab配置shell实现后台进程不间断运行
检测get_report_no.php进程是否一直在运行 #!/bin/bash PROC=`ps -ef |grep get_report_no.php|grep -v grep|wc -l` if ...
- [VC]vc中socket编程步骤
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW): 基于TCP的socket编程是采用的流式套接字.在这个 ...
- POJ-2195 Going Home---KM算法求最小权值匹配(存负边)
题目链接: https://vjudge.net/problem/POJ-2195 题目大意: 给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致.man每移动一格 ...
- fdisk - Linux分区表操作工具软件
总览 fdisk [-u]设备名 fdisk -l [-u] [设备名 ...] fdisk -s分区 ... fdisk -v 描述 硬盘可以被分成一个或多个逻辑磁盘,称为 分区. 这些分区信息都存 ...
- python_26_dictionary
#key-value 字典无下标 所以乱序,key值尽量不要取中文 info={ 'stu1101':'Liu Guannan', 'stu1102':'Wang Ruipu', 'stu1103': ...
- javaweb基础(32)_jdbc学习入门
一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- MySQL数据库的下载安装
目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.MySQL下载 MySQL版本:5.7.17 下载地址:https://dev.mysql.co ...