1.2 oracle之递归算法(connect by prior )

1.2 oracle之递归算法(connect by prior ) 

一、connect by prior是什么

CONNECT BY PRIOR 这个子句主要是用于B树结构类型的数据递归查询,通俗点讲就是当表中存在ID和父类ID时可以通过子节点或者父节点查到相应的数据。

实际例子:以299499为父结点,遍历其子结点

SELECT FG.CODE,FG.NAME,LEVEL,FG.PARENT_ID FROM CMS.FND_GROUP FG 
START WITH FG.PARENT_ID = '299499'
CONNECT BY PRIOR FG.ID = FG.PARENT_ID
ORDER BY LEVEL DESC
(WHERE FG.ID )

start with 子句:遍历起始条件,

connect by 子句:连接条件。关键词prior,跟父类字段连接就向父节点遍历,parentid、id两列谁放在“=”前都无所谓,关键是prior跟谁在一起。上面就是向子类遍历。

order by 子句:排序,根据级别降序。

原文地址:https://www.cnblogs.com/Smileing/p/12171338.html