Oracle 递归

Oracle的递归查询

收集的几条在oracle中通过connect by prior来实现递归查询

Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。

创建示例表:

 

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');

 从Root往树末梢递归

 

select * from TBL_TEST

start with id=1

connect by prior id = pid

 从末梢往树ROOT递归

select * from TBL_TEST

start with id=5

connect by prior pid = id

猜你喜欢

转载自kent-mu.iteye.com/blog/1927460