ORACLE递归查询
2012-06-28 11:19
316 查看
对于oracle进行简单树查询(递归查询) DEPTID PAREDEPTID NAME NUMBER NUMBER CHAR (40 Byte) 部门id 父部门id(所属部门id) 部门名称 通过子节点向根节点追朔. Sql代码 select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid 通过根节点遍历子节点. Sql代码 select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid 可通过level 关键字查询所在层次. Sql代码 select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid 再次复习一下:start with ...connect by 的用法, start with 后面所跟的就是就是递归的种子。 递归的种子也就是递归开始的地方 connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询; connect by prior 后面所放的字段是有关系的,它指明了查询的方向。 练习: 通过子节点获得顶节点 Sql代码 select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid
相关文章推荐
- oracle 中 Start with...connect by 的用法(递归查询)
- Oracle:递归查询(树形结构数据)
- oracle、子句实现递归查询
- ORACLE递归查询遍历详解
- oracle 递归查询,向上和向下遍历
- oracle递归查询 start with...connect by
- mysql以及oracle的递归查询
- oracle 递归查询
- oracle直接sql语句后台递归查询返回一个树
- Oracle中的递归查询
- SQL递归查询(SqlServer/ORACLE递归查询)[语法差异分析]
- MySql递归查询和Oracle递归查询
- 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】
- oracle的分页显示-字符串截取-递归查询
- oracle递归查询实例
- oracle ---递归查询(start with --connect by prior )
- oracle递归查询,修改及删除父子关系
- oracle 递归查询
- Oracle级联递归查询
- Oracle: 递归查询