首页 > 数据库技术 > 详细

oracle 的 start with connect by prior 学习

时间:2017-08-15 19:21:42      阅读:284      评论:0      收藏:0      [点我收藏+]

语法:

SELECT ... FROM    + 表名 
START WITH         +
条件1
CONNECT BY PRIOR   +
条件2
WHERE              +
条件3

 

说明:

这个方法是用来查询树状结构的数据的。举个例子,我们有一个这样的结构

技术分享

 

 

然后建一个这样的表,插入数据。

CREATE TABLE TEST(

        ID NUMBER(2) PRIMARY KEY,

        PARENT_ID NUMBER(2)

);

 

INSERT INTO TEST (ID, PARENT_ID) VALUES (1, 0);

INSERT INTO TEST (ID, PARENT_ID) VALUES (2, 1);

INSERT INTO TEST (ID, PARENT_ID) VALUES (3, 1);

INSERT INTO TEST (ID, PARENT_ID) VALUES (4, 2);

INSERT INTO TEST (ID, PARENT_ID) VALUES (5, 2);

INSERT INTO TEST (ID, PARENT_ID) VALUES (6, 3);

INSERT INTO TEST (ID, PARENT_ID) VALUES (7, 3);

 

现在,我们可以开始查询了。

比如,我们要查询ID3的子节点有哪些:

 

SELECT * FROM TEST START WITH ID = 3 CONNECT BY   PARENT_ID = PRIOR ID;

结果:

技术分享

 


 

查询1的子节点:

技术分享

 


 

查询3的父节点有哪些:

SELECT * FROM TEST START WITH ID = 3 CONNECT BY PRIOR  PARENT_ID =  ID

结果:

技术分享

 


查询7的父节点有哪些:

技术分享

 

基本用法就是这样了

 

 

 

 

oracle 的 start with connect by prior 学习

原文:http://www.cnblogs.com/wevil/p/7366936.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!