Oracle 数据库层级遍历查询功能的实现

2022-07-08 18:14:04
目录
1. 树形结构存储表1.1 初始化测试数据1.1.1 写入数据1.1.2 树形结构如下图2. 树形结构遍历查询2.1 从父节点遍历2.3 start with 条件 connect by prior 条件

1.>

首先创建一张用于测试的表,表明为 TREE,表中有3个字段,分别是,ID,NANE,UP_ID。UP_ID 是 ID 的上层,主要实现树形结构的存储。

CREATE TABLE TREE(
    ID INTEGER
    ,NAME VARCHAR2(30)
    ,UP_ID INTEGER
);

1.1>

1.1.1>
insert into tree values(1,'一',8);
insert into tree values(2,'二',1);
insert into tree values(3,'三',2);
insert into tree values(4,'四',6);
insert into tree values(5,'五',2);

1.1.2>
    root(8)
      一(1)
        二(2)
          三(3)五(5)root(6)
            四(4)

            2.>

            2.1>
            select
                id
                ,name
                ,up_id
            from tree
            start with up_id = 8 connect by prior id = up_id
            

            查询结果如下:

            1    一级    8
            2    二级    1
            3    三级    2
            5    三级    2

            2.2 从子节点开始遍历

            select
                id
                ,name
                ,up_id
            from tree
            start with id = 8 connect by prior id = up_id
            

            查询结果是:

            2    二级    1
            3    三级    2
            5    三级    2

            2.3>
              start with 条件 表示查询语句的开始条件。connect by prior 条件 表示连接条件。从上边的例子上看,id = up_id 表示父子节点的关联关系。prior 表示的是遍历关系。prior 与父节点在一起表示向上层遍历,prior 与子节点在一起表示向下遍历。

              到此这篇关于Oracle 数据库层级遍历查询的文章就介绍到这了,更多相关Oracle层级遍历查询内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!