1、作用:
用于存在父子,祖孙,上下级等层级关系的数据表进行层级查询。

2、语法

2.1、说明
start with: 指定起始节点的条件

connect by: 指定父子行的条件关系

prior: 查询父行的限定符,格式: prior column1 = column2 or column1 = prior column2 and … ,

nocycle: 若数据表中存在循环行,那么不添加此关键字会报错,添加关键字后,便不会报错,但循环的两行只会显示其中的第一条

循环行: 该行只有一个子行,而且子行又是该行的祖先行

connect_by_iscycle: 前置条件:在使用了nocycle之后才能使用此关键字,用于表示是否是循环行,0表示否,1 表示是

connect_by_isleaf: 是否是叶子节点,0表示否,1 表示是

level: level伪列,表示层级,值越小层级越高,level=1为层级最高节点
3、构造数据
在这里插入图片描述
在这里插入图片描述
4、查询jack下的所有子节点
在这里插入图片描述
5、查询jack和arise下的所有子节点
在这里插入图片描述
6、查询jack的祖先节点
在这里插入图片描述
7、查询一个节点的叔叔伯父节点
在这里插入图片描述
8、查询族兄
在这里插入图片描述
9、level伪列的使用,格式化层级
在这里插入图片描述
10、connect_by_root 查找根节点
在这里插入图片描述
11、connect_by_isleaf 是否是叶子节点
在这里插入图片描述
12、使用connect by rownum生成序列
ROWNUM是一个伪列,即先查到结果集之后再加上去的一个列,它的取值从1开始排依次递增。ROWNUM其实是oracle数据库从数据文件或缓冲区中读取数据的顺序。取得第一条记录则rownum值为1,第二条为2,依次类推。
connect by rownum是通过递归迭代第一行生成一个序列。格式如下:
在这里插入图片描述
例如:
12.1 生成1-5之间的一个序列
在这里插入图片描述
12.2 生成10个60到100之间的随机整数
在这里插入图片描述
12.3 生成连续的日期值
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐