首页 > Oracle > Oracle递归sql深入案例!
2015
08-05

Oracle递归sql深入案例!

前面大致说了下简单的递归sql写法,下面看另一个需求!

Oracle递归sql深入案例! - 第1张  | Jerry大数据之路

上图为测试数据,userid表示用户id,topuid表示上级用户id,leftuid表示左下级节点用户id,rightuid表示右下级用户id,tjuid表示推荐用户id。如果用图形来表示关系的话,上图中的数据就是二叉树的结构。

比如用户qiji888对于用户lixiang来说,所在的位置在lixiang的第2级,位于左侧(也就是图中的区域,0表示左,1表示右),层级关系大家应该都好理解,那这个区域如何理解??比如lixiang用户有leftuid和rightuid,在leftuid下的所有用户,包括子用户都属于左侧,rightuid下的子用户都属于右侧,现在就需要对这个区域进行计算!

Oracle递归sql深入案例! - 第2张  | Jerry大数据之路

 

connect_by_root就找出了每个节点的根节点,此外还有connect_by_isleaf,表示判断当前节点是否还有子节点,如果没有,则为1,还有子节点的话,则为0.

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL