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后面的话,那就是从上查找
  • 相关阅读:
    redis性能优化、内存分析及优化
    代码质量审核和管理工具分析比较
    SpringBoot集成Nacos
    Navicat,Dbeaver,heidiSql,DataGrip数据库连接工具比较
    python报错:
    6.Python深入_内存管理
    Win7安装python第三方模块objgraph报错
    5.Python深入_装饰器
    4.Python深入_闭包
    1.Python深入_对象的属性
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/7411037.html
Copyright © 2011-2022 走看看