Oracle数据库之树形查询的代码示例

数据库 Oracle
本文我们主要介绍了Oracle数据库树形查询的知识,包括:根节点遍历子节点以及子节点向根节点追溯,并给出了详细的代码示例,希望能够对您有所帮助。

Oracle数据库树形查询是本文我们主要要介绍的内容,包括树形查询的基本语法、构造环境、根节点遍历子节点以及子节点向根节点追溯,接下来就让我们一起来了解一下这部分内容吧。

基本语法:

 

  1. select...from tabename start with cond1 connect by  prior cond2 where cond2 

 

注意:

cond1是根节点的限定语句。

cond2是连接条件,其中prior表示上一条记录,指该记录的父亲是上一条记录。

cond3是过滤条件。

构造环境:

 

  1. create table Family(  
  2. id integer,  
  3. parentid integer,  
  4. name varchar2(50)  
  5. )  
  6. insert into family values(0,0,'a')  
  7. insert into family values(1,0,'b')  
  8. insert into family values(2,1,'c')  
  9. insert into family values(3,1,'d')  
  10. insert into family values(4,1,'e')  
  11. insert into family values(5,1,'f') 

 

通过根节点遍历子节点

例如:查询父亲等于1的所有子的信息

  1. select * from family start with parentid=1 connect by prior id=parentid 

 

通过子节点向根节点追溯

例如:

 

  1. select * from family start with id=5 connect by prior parentid=id 

 

注:如果报ORA-01436:用户数据库中的coonect by循环,则将第一条数据中的parentid改为null,否则loop循环找parentid就找不到了!

扩展:通过level 关键字查询所在层次

select t.*,level from family t start with parentid=1 connect by prior id=parentid

注意:表必须用别名。

关于Oracle数据库的树形查询的知识就介绍到这里了,如果您想了解更多Oracle数据库的知识,可以看一下这里的文章:http://database.51cto.com/oracle/,相信一定可以带给您收获的!

【编辑推荐】

  1. 适合初学者的MySQL学习笔记之库操作示例
  2. 适合初学者的MySQL学习笔记之表操作示例
  3. 适合初学者的MySQL学习笔记之MySQL管理心得
  4. 适合初学者的MySQL学习笔记之MySQL查询示例
  5. 适合初学者的MySQL学习笔记之管理员常用操作总结
责任编辑:赵鹏 来源: 博客园
相关推荐

2011-08-16 19:11:15

Oracle数据库创建Schema

2011-08-18 16:42:04

Oracle数据库维护SQL代码示例

2010-04-21 11:53:03

Oracle数据库

2011-08-18 18:34:00

Oracle数据库创建自增字段

2010-04-19 11:37:20

Oracle数据库

2011-08-29 18:17:12

Oracle联合查询

2010-04-12 17:47:01

Oracle多表查询

2011-08-19 15:13:36

SQL Server MDX查询

2009-11-24 13:33:49

2010-04-12 14:19:00

Oracle数据库备份

2011-08-09 17:24:21

SQL Server 数据库日志

2012-07-23 14:30:33

Oracle

2010-04-12 14:55:26

Oracle数据库

2010-10-27 17:11:35

oracle查询

2010-10-28 16:46:23

查询Oracle数据库

2011-09-01 23:04:03

OracleKFOD查看disk

2010-04-12 09:26:52

Oracle查询分页

2010-10-26 15:21:11

连接Oracle数据库

2011-03-01 16:30:55

Oracle

2011-03-11 16:25:53

Oracle数据库
点赞
收藏

51CTO技术栈公众号