oracle 的 start with connect by prior 学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 的 start with connect by prior 学习相关的知识,希望对你有一定的参考价值。

语法:

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 学习的主要内容,如果未能解决你的问题,请参考以下文章

oracle connect by 和 start with 的用法

oracle 的 start with connect by prior 学习

Oracle START WITH 子句不返回根行

oracle树形查询 start with connect by

Oracle 中 Start With 关键字

Oracle Start With关键字