Oracle树形查询
sql树形递归查询是数据库查询的一种特殊情形,也是组织结构、行政区划查询的一种最常用的的情形之一。下面对该种查询进行一些总结:
start with子句: 递归的条件,需要注意的是如果with后面的值是子节点那么求出的就是他的父节点和祖宗节点,如果是父节点那么求出的就是他的子节点和子孙节点,
connect by子句:连接条件。 关键词prior,prior跟它右边的父节点放在一起(a.parent_org)表示往父节点方向遍历, 反之,如果 prior跟子节点放在一起( a.org_id)表示往
叶子方向遍历。 这里需要注意的 a.org_id放在prior关键词的前面或者后面都没什么关系,也就是上面可以这样写 a.org_id= prior a.parent_org。重要的是prior旁边放的是什么。
level伪列: 递归的层次表示, 用来进行输出缩进。可以看到递归层次,看起来很直观。 需要注意的是Level 也可以放在Group by后面,也可以放在select 后面.
1.查询某个节点下的子孙节点
select a.org_id,a.org_name, a.org_level, a.parent_org,level
from dir_organ a
start with a.parent_org=203
connect by prior a.org_id=a.parent_org;
2.查找节点的祖先节点
select a.org_id,a.org_name, a.org_level, a.parent_org,level
from dir_organ a
start with a.parent_org=203
connect by prior a.parent_org=a.org_id ;
3.start with 和connect by prior的位置可以互换:
select a.org_id, a.org_name, a.org_level, a.parent_org, level
from dir_organ a
connect by prior a.org_id = a.parent_org
start with a.parent_org = 203;
Oracle树形查询的更多相关文章
- 整理oracle 树形查询
注:本文参考了<整理oracle 树形查询> sql树形递归查询是数据库查询的一种特殊情形,也是组织结构.行政区划查询的一种最常用的的情形之一.下面对该种查询进行一些总结: create ...
- oracle树形查询 start with connect by
一.简介 在oracle中start with connect by (prior) 用来对树形结构的数据进行查询.其中start with conditon 给出的是数据搜索范围, connect ...
- [转载]oracle树形查询 start with connect by
一.简介 在oracle中start with connect by (prior) 用来对树形结构的数据进行查询.其中start with conditon 给出的是数据搜索范围, connect ...
- ORACLE 树形查询 树查询
前台树结构依据个人的权限登录变化 全部我查询要依据 树的ID 查询以下全部的子节点 以及本节点的信息 select * from table start with id = #{id} connect ...
- oracle 树形表结构查询 排序
oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...
- MySql/Oracle树形结构查询
Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...
- Oracle中树形查询使用方法
树形查询一般用于上下级场合,使用的特殊sql语法包括level,prior,start with,connect by等,下面将就实例来说明其用法. 表定义: create table tb_hier ...
- oracle 树形SQL
oracle树形sql查询实例分析 通过此SQL语句 [sql] select * from tree 查看原始数据如下: 我们要想得到如下的一个树形查询结果如下图所示(包含 R ...
- Oracle树形结构数据-相关知识总结
Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIANCODE.TREE_TABLE_BASI ...
随机推荐
- ACM山东工商 栈和队列算法练习
#include <stdio.h>#include <stdlib.h> #define SIZE 20 typedef struct hold{ char sign[S ...
- H5 实现图片上传预览
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- SQLServer 关于 HAVING子句
使用HAVING子句求众数 示例表 1.使用谓词 2.使用极值函数 (思考,在条件中存在聚合函数时,不可使用where,需要使用having) 使用HAVING子句求中数
- 2D游戏与3D游戏的区别 原文:https://zhidao.baidu.com/question/588490865.html
2D和3D间有哪些不同点呢? 让我们来比较一下,共同找出它俩之间的不同点. 对玩家来说,2D技术和3D技术只是显示数据的方式而已,玩家都是通过二 维的平面显示器来观看它们.对制作者来说,二者的不同之处 ...
- 搞懂iobuffer就得先学习bytebuffer
ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下. ...
- html限制文本框只能输入数字和一个小数点
近期在做一个前台页面,有一个文本框是用来输入充值金额的,就想到了限制用户只能输入纯数字的数据且只能包含一个小数点.下面就是我实现的代码 $(function() { //阻止数字键以外的按键输入 $( ...
- golang操作memcached 转自https://blog.csdn.net/weixin_37696997/article/details/78760397
go使用memcached需要第三方的驱动库,这里有一个库是memcached作者亲自实现的,代码质量效率肯定会有保障 1:安装 go get github.com/bradfitz/gomemcac ...
- Getting Started with XlsxWriter
下面是一些关于使用XlsxWriter模块的简单介绍. 安装XlsxWriter 下面的是几个安装XlsxWriter模块的方法: 1.使用Pip 使用pip 方式是最推荐的从PyPi安装Python ...
- 用anaconda安装tensorflow
conda create -n tensorflow python=2.7 conda activate tensorflow / source activate tensorflow anacond ...
- 【C++】源自指针的报错
最近在调试PCL程序的时候,被这个报错折腾了好久. 无数血泪史总结成一句话,指针未初始化! PointCloudXYZ::Ptr plane_ptr; 错误!!! PointCloudXYZ::P ...