zoukankan      html  css  js  c++  java
  • 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后面的话,那就是从上查找
  • 相关阅读:
    struts2的@Result annotation 如何添加params,并且在页面取值
    spring @Entity @Table
    @Results( 中 params 怎么用
    Java三种技术架构
    python 内存管理
    wxpyhon 鼠标事件例子
    常用wxPython事件描述
    wxpython 拖动界面时进入假死状态(未响应)解决方法
    python 的一些高级编程技巧
    python 访问器@property的使用方法
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/7411037.html
Copyright © 2011-2022 走看看