oracle递归查询(查询条件ID下得所有子集)

Posted 性能、可用性、伸缩性、扩展性、安全性、可监控是网站架构最核心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle递归查询(查询条件ID下得所有子集)相关的知识,希望对你有一定的参考价值。

一、CREATE TABLE TBL_TEST
  (
  ID    NUMBER,
  NAME  VARCHAR2(100 BYTE),
  PID   NUMBER                                  DEFAULT 0
  )
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(‘1‘,‘10‘,‘0‘);
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(‘2‘,‘11‘,‘1‘);
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(‘3‘,‘20‘,‘0‘);
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(‘4‘,‘12‘,‘1‘);
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(‘5‘,‘121‘,‘2‘);
二、格式
        Select * from …. Where [结果过滤条件语句]
  Start with  [and起始条件过滤语句]
  Connect by prior [and中间记录过滤条件语句]
三、查找所有下级
        select * from tbl_test start with id=1 connect by prior id=pid
  注意:此sql能查找id=1的数据的所有下级,写sql语句时要注意,因为是从id开始查找下级,所以connect by prior 子句的条件是         id=pid
四、查找所有上级
       select * from tbl_test start with id=5 connect by prior pid=id
  因为是从id开始查找上级,所以connect by prior 子句的条件是pid=d

以上是关于oracle递归查询(查询条件ID下得所有子集)的主要内容,如果未能解决你的问题,请参考以下文章

oracle实现递归查询

Oracle递归查询(查询当前记录所有父级或子级)

Oracle 递归查询 (start with ...connect by ...prior)

oracle递归查询

Oracle递归查询的几种方法

oracle中 connect by prior 递归查询