1 定义:
层次查询使用树的遍历,走遍含树形结构的数据集合,来获取树的层次关系报表的方法
树形结构的父子关系,你可以控制:
① 遍历树的方向,是自上而下,还是自下而上
② 确定层次的开始点(root)的位置
层次查询语句正是从这两个方面来确定的,start with确定开始点,connect by确定遍历的方向
2 语法:

注释:
① level是伪列,表示等级
② from后面只能是一个表或视图,对于from是视图的,那么这个view不能包含join
③ Where条件限制了查询返回的行,但是不影响层次关系,属于将节点截断,但是这个被截断的节点的下层child不受影响
④ prior是个形容词,可放在任何地方
⑤ 彻底剪枝条件应放在connect by;单点剪掉条件应放在where子句。但是,connect by的优先级要高于where,也就是sql引擎先执行connect by
⑥ 在start with中表达式可以有子查询,但是connect by中不能有子查询
3 遍历树:
㈠ Start with子句

本文详细介绍了Oracle数据库中的层次查询,包括定义、语法、遍历树的方法、使用level和lpad格式化报表、修剪branches的策略以及实际应用场景。通过start with和connect by子句,实现自顶向下和自底向上的遍历。此外,还探讨了Oracle 10g的新特性,如SIBLINGS排序和CONNECT_BY_ROOT功能。
最低0.47元/天 解锁文章
3613

被折叠的 条评论
为什么被折叠?



