树形查询 又叫层次查询
树形查询通常由根节点、父节点、
子节点、叶子结点组合
根节点:当前节点之上没有其他节点的
叶子节点:当前节点之下没有其他节点的
父节点:当前节点之下有其他节点的
子节点:当前节点之上有其他节点的
level 节点深度
树形查询的函数
1.sys_connect_by_path(列,分隔符) 合并层级
2.connect_by_root 列 返回根节点
3.connect_by_isleaf 判断是否为叶子节点
树形查询的语法
select
from
[where 条件]
[start with 条件] --表示从谁开始,不写默认全表都做一个根节点
connect by prior 儿子列=父亲列 查下级
父亲列=儿子列 查上级
[order siblings by 列] --同一级别排序
--查询KING的下属,显示节点深度
select ename,level
from emp
start with ename='KING'
connect by prior empno=mgr
--查询SCOTT的下级,显示节点深度
select ename,level
from emp
start with ename='SCOTT'
connect by prior empno=mgr
--查询KING的下属,显示节点深度和缩进后的名字
select lpad(' ',5*level-5,' ')||ename,level
from emp
start with ename='KING'