oracle查询树形关系

Oracle用Start with...Connect By子句递归查询
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

参考:
http://blog.csdn.net/Caesar_Gu/archive/2008/01/21/2055985.aspx
http://oracle.chinaitlab.com/exploiture/734006.html
http://blog.sina.com.cn/s/blog_4bfad52101000b93.html
http://hi.baidu.com/suofang/blog/item/a58bdd5829d5e583800a1812.html

http://www.builder.com.cn/2007/1005/536404.shtml
http://deqiallen.javaeye.com/blog/92794

此条目发表在DB/ES分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据