您的位置:首页技术开发数据库教程 → oracle递归查询

oracle递归查询

时间:2010/1/20 11:07:00来源:本站整理作者:我要评论(0)

通过子节点向根节点追朔.

  Sql代码

  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

  可通过level 关键字查询所在层次.

  Sql代码

  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

表结构
DEPTID

PAREDEPTID

NAME
NUMBER NUMBER CHAR (40 Byte)
部门id 父部门id(所属部门id) 部门名称

 

相关视频

    没有数据

相关阅读 Oracle PRKC-1002错误原因和解决方案oracle10g安装图解(win7)Oracle错误代码大全oracle查看实例名方法Oracle表空间恢复方案微软亚太研发集团总部大楼 扎根中国"硅谷"亚马逊网络服务推出Oracle RDS如何关闭oracle rac选项 make rac_off

文章评论
发表评论

热门文章 oracle10g安装图解(wi

最新文章 数据库流行度排行2019oracle10g安装图解(wi SQL2008全部数据导出导入两种方法SQL2005新建复制“找不到存储过程 错误:28Dos远程登录mysql数据库详细图文教程mysql怎么开启远程登录功能

人气排行 mysql自动定时备份数据库的最佳方法-支持wiVisual Foxpro 6.0安装向导图文教程SQL Server 2008 安装图文教程SQL2008全部数据导出导入两种方法SQL 2000/2005/2008 的收缩日志方法,和清理mysql出 Can't connect to MySQL server onoracle10g安装图解(win7)sql2005安装图解_(sql server2005)安装教程