oracle层次查询中prior与自上而下、自下而上查询
来源:互联网 发布:什么牌子的口罩好 知乎 编辑:程序博客网 时间:2024/05/16 16:55
作为一名开发和管理兼修的工程师,有时候会遇到编写复杂的sql ,此时就会查找资料,事后又很快会忘记。记得自己每次编写层次结构的时候都会找资料,到底谁是父亲,谁是孩子,prior放在那边代表什么意思。
今天主要把层次的语法进行分析,并用自己的理解记住自顶向下和自底向上。
基本语法很简单:
select ... from table where 条件 connect by prior column1=column2start withorder [siblings] by;
- 1、where 条件很好理解,就是在整个查询结果的基础上,进行过滤;并非过滤之后再查询。
- 2、start with 也很好理解,表示从什么开始,通常表示指定一个树的根节点或者一个树的叶子节点;这取决于你是自顶向下还是自底向上。
- 3、order [siblings] by主要是排序,可以按照各种条件进行排序,siblings定义了同一个父亲下的兄弟之间的排序。
- 4、connect by 这是每次容易弄混淆的:
理解connect by ,举例如下
prior child_id = parent_id <=> parent_id=prior child_idprior parent_id=child_id <=> child_id=prior parent_id
等式两边互换位置是等价的。
当prior放在那一边时,我们可以翻译为找什么;比如第一个prior child_id 可以翻译为找孩子;prior parent_id 翻译为找父亲;这样找孩子的话,可以就是自顶向下了,找父亲就是自底向上。
有个这个理解,写层次查询时,就知道如何摆放prior位置了。
5、还有一个伪列level,代表着层次。
阅读全文
0 0
- oracle层次查询中prior与自上而下、自下而上查询
- 层次化查询start with...connect by prior... -Oracle
- 自上而下,自下而上
- 级联查询 oracle 中connect by prior实现递归查询
- Oracle 层次查询(递归查询)(level start with connect by prior)
- mysql的逆袭:如何做oracle的start with connect by prior递归层次查询
- [层次结构|树状结构] oracle中用start with...connect by prior子句实现递归查询
- oracle中connect by prior实现递归查询
- oracle中connect by prior实现递归查询
- oracle中connect by prior实现递归查询
- oracle中 树形查询connect by prior 递归算法
- oracle层次查询
- Oracle 层次查询
- oracle的层次查询
- ORACLE层次化查询
- oracle 层次化查询
- Oracle层次查询
- ORACLE层次查询学习
- WPF中图形表示语法详解(Path之Data属性语法)
- 线程池测试
- mysql中timeout参数的相关解释
- 设计模式——工厂模式
- ReactNative布局
- oracle层次查询中prior与自上而下、自下而上查询
- 剑指offer--矩形覆盖--简单DP
- 分针网——每日分享:PHP开发几点安全问题
- Runtime & Properties 类
- 安装mysql示例数据库sakila
- 170621 Linux and Windows directories
- php数组排序—sort() asort() ksort() rsort() arsort() krsort()
- BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP() 这两个宏的具体实现与作用
- Java撸码规范--alibaba