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 子句:排序,根据级别降序。