码迷,mamicode.com
首页 > 数据库 > 详细

oracle 的 start with connect by prior 学习

时间:2017-08-15 19:54:53      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:_id   insert   ack   val   nbsp   http   snap   用法   .com   

语法:

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 学习

标签:_id   insert   ack   val   nbsp   http   snap   用法   .com   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!