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);
现在,我们可以开始查询了。
比如,我们要查询ID为3的子节点有哪些:
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 学习