当前位置:Gxlcms > 数据库问题 > oracle 的 start with connect by prior 学习

oracle 的 start with connect by prior 学习

时间:2021-07-01 10:21:17 帮助过:16人阅读

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   

人气教程排行