oracle的递归运算(树运算) 无限树形

Posted Debugs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的递归运算(树运算) 无限树形相关的知识,希望对你有一定的参考价值。

oracle的递归运算(树运算)start with org_id =‘1‘connect by prior parent_id=son_id

 
1.前言 
  oracle的递归运算,在我们web页面的目录结构中会经常用到,据说是面试经常出的题目,而网上的一些东西说得都不是很明了,所以自己整理了一下,以下主要通过一个例子来说明,可以直接copy代码运行一下。 
  www.2cto.com  
2.start with org_id = ‘条件1‘  prior parent_id =  son_id; 的作用 
  这个就是为了把树形结构全部查出来,树的目录就放在同一张表中,如 
|--2 
|--3 
|--4 
   |--5 
      |--6 
|--7 
   |--8 
      |--9 
         |--10 
  www.2cto.com  
这样的结构怎么查出来呢,这种特殊的查询,connect by perior就派上用场了 。 
3.代码 
Java代码  
create table TESTTEMP  
(  
  parent_ID    VARCHAR2(30),  
  son_ID VARCHAR2(30)  
);  
  
insert into TESTTEMP values(‘1‘,‘0‘);  
insert into TESTTEMP values(‘1‘,‘2‘);  
insert into TESTTEMP values(‘1‘,‘3‘);  
insert into TESTTEMP values(‘1‘,‘4‘);  
insert into TESTTEMP values(‘1‘,‘7‘);  
insert into TESTTEMP values(‘4‘,‘5‘);  
insert into TESTTEMP values(‘5‘,‘6‘);  
insert into TESTTEMP values(‘7‘,‘8‘);  
insert into TESTTEMP values(‘8‘,‘9‘);  
insert into TESTTEMP values(‘9‘,‘10‘);  
commit;  
select * from TESTTEMP   
start with parent_ID=‘1‘  
connect  by  parent_ID= prior son_ID   
  www.2cto.com  
结果: 
1
1
1
1
4
5
1
7
8
9 10 
4。总结 
  上面的例子,作用是实现遍历所有节点。如果prior 放在 connect  by后面的话,那就是从上查找

以上是关于oracle的递归运算(树运算) 无限树形的主要内容,如果未能解决你的问题,请参考以下文章

如何用java无限级树形结构的构建

oracle树形结构遍历

sqlserver实现树形结构递归查询(无限极分类)

非二叉树递归

SqlServer :实现树形结构递归查询(无限极分类)

不用递归实现无限分类数据的树形格式化