1、简介:Oracle层次化查询是Oracle特有的功能实现,主要用于返回一个数据集,这个数据集存在树的关系(数据集中存在一个Pid记录着当前数据集某一条记录的Id)。...下面开始执行层次化查询,从PId为null的节点(该节点为根节点)开始递归查找,查找出所有的更节点下的子节点,构建出一个完整的树
select ID,DATA,nvl(TO_CHAR(PID),'NULL...代码解析:
(1)、start with PID is NULL 指定层次化查询的根节点,
?
红框内的两个节点为根节点,并开始遍历其余的节点。...(2)、connect by prior ID=pid 当前节点的PID等于上一层节点的ID,如果满足条件,就加入到树结果集中
指定遍历查找子节点的规则-----> 这一过程是递归查找,会一层一层找下去...4、 Oracle SQL 中的层次化查询会检测数据中是否存在回环(死循环),如果存在回环,则会抛出 ORA-01436: CONNECT BY loop in user data . 的错误。