`
IT4CAT
  • 浏览: 25214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 树状数据结构查询结果特殊展示

阅读更多

有个数据库表结构设计如下:

 

create table DEPT(

ID NUMBER(9) PRIMARY KEY, --部门ID

NAME VARCHAR2(100), --部门名称

PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联

);

 

 

数据如下:

 

 

按照这种查询会出现一个想要的分组结构

 

 

SELECT T.*, ROWNUM

  FROM DEPT T

START WITH T.PARENT_ID = 0

CONNECT BY PRIOR T.ID = T.PARENT_ID

 

 

具体讲解如下:

 

 

语法:

select *

from 表名

where 条件1

start with 条件2

connect by prior 当前表字段=级联表字段

start withconnect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。

start with表示开始的记录

connect by prior 指定与当前记录关联时的字段关系

代码:

--创建部门表,这是一个具有层次结构的表,子记录通过parent_id与父记录的id进行关联 create table DEPT(

ID NUMBER(9) PRIMARY KEY, --部门ID

NAME VARCHAR2(100), --部门名称

PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联

);

向表中插入如下数据,为了使代码简单,一个部门仅具有一个下级部门

从根节点开始查询递归的记录

select *

from dept

start with id=1

connect by prior id = parent_id; 下面是查询结果,start with id=1表示从id=1的记录开始查询,向叶子的方向递归,递归条件是id=parent_id,当前记录的id等于子记录的parent_id ●从叶子节点开始查询递归的记录

select *

from dept

start with id=5

connect by prior parent_id = id;

下面是查询结果,递归条件按照当前记录的parent_id等与父记录的id

对查询结果过滤

select *

from dept

where name like '%销售%'

start with id=1

connect by prior id = parent_id;

在下面的查询结果中可以看到,首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤

●prior的作用 prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果

select *

from dept

start with id=1

connect by prior id = parent_id;

 

  • 大小: 16.7 KB
  • 大小: 35.9 KB
分享到:
评论

相关推荐

    Oracle查询树形结构

    Oracle 查询树形结构是一种特殊的查询方式,它可以将树形结构的数据从 Oracle 数据库中检索出来。这种结构广泛应用于各种应用系统中,例如管理系统、文件系统、组织结构等。 在 Oracle 中,查询树形结构可以使用 ...

    关系数据库中树形数据结构的处理.pdf

    传统的关系数据库设计是面向二维表的,对于树形数据结构的处理需要进行特殊的处理方式,以便有效地组织和查询数据。 双亲双索引法是处理树形数据结构的一种有效方法。这种方法使用双亲法表示树的存储结构,即在...

    数据结构伪代码

    - **非线性结构**包括树形结构(如二叉树)、图形结构等,这类结构中的元素之间存在着一对多或多对多的关系。 #### 二、Oracle数据库中的伪列与伪表 Oracle数据库作为业界领先的数据库管理系统之一,提供了多种...

    Oracle高级sql学习与练习

    5. 层次查询(HIERARICAL RETRIVEL)通常指在Oracle中通过CONNECT BY语句实现的树形结构数据查询,可以方便地查询具有层级关系的数据。 6. DECODE函数和行列互换则是对数据进行条件处理和转置的重要工具。DECODE...

    层次查询功能在Oracle数据库中的应用.pdf

    Oracle数据库是一种广泛使用的商业关系型数据库管理系统,其层次查询功能主要基于树形结构来处理层级数据,这种结构被广泛用于表示具有层级关系的数据,如人事组织结构、公司组织架构以及计算机目录结构等。...

    数据结构课后题解答(C语言描述)

    数据结构包括线性结构、树形结构、图结构和集合等,每种结构都有其特定的操作和应用。例如,线性结构如数组和链表,它们适用于顺序访问和遍历;树形结构如二叉树和堆,它们在搜索、排序等方面表现出色;图结构则在...

    Oracle 递归函数介绍

    Oracle 递归函数是一种特殊的PL/SQL函数,可以用于解决复杂的树形结构查询问题。递归函数可以自我调用,以便遍历树形结构的每个节点,直到达到停止条件。 在 Oracle 中,递归函数的定义语法如下所示: ```sql ...

    数据结构(c语言版)习题集答案

    堆是一种特殊的树形数据结构,可以是最大堆或最小堆,通常用于优先队列的实现。 图结构包括图的表示(邻接矩阵、邻接表)以及图的遍历算法(深度优先搜索和广度优先搜索),在路由选择、社交网络分析等领域有着广泛...

    Oracle字段根据逗号分割查询数据的方法

    在Oracle数据库中,有时我们遇到一个特殊的查询需求,即字段中的值是以逗号分隔的字符串,我们需要根据每个单独的值来查询数据。在这种情况下,简单的`LIKE`查询无法满足需求,因为`LIKE`通常用于匹配模式,而不是...

    edb数据库保存树形框分支结构源码

    2. **树形数据结构**:在计算机科学中,树是一种非线性数据结构,由节点(也称为顶点)和连接节点的边构成。每个节点可以包含零个或多个子节点,形成分层结构。树形数据结构常用于表示分类、文件系统、组织结构等。 ...

    Oracle 数据库特殊查询总结

    这些特殊的Oracle查询技巧极大地丰富了我们处理数据库数据的能力,不仅有助于查询和维护复杂的数据结构,还能提供关于数据库状态的关键信息,对于数据库管理员来说是不可或缺的工具。在实际工作中,根据具体需求灵活...

    index,索引,多维索引数据结构

    索引是一种特殊的数据结构,用于加速数据库表中数据的查找、排序和连接操作。它减少了数据访问的时间,提高了查询效率,尤其是在处理大量数据时。在这里,我们可能讨论的是关系型数据库管理系统(RDBMS)如MySQL、...

    Oracle的执行计划--上

    执行计划是指在Oracle数据库中执行SQL查询时所采用的数据访问路径。它详细描述了数据库如何处理查询请求,包括数据读取的方式、使用的索引以及连接操作等。执行计划对于理解查询性能至关重要,因为它直接影响到查询...

    数据结构面试题+JSP网站项目

    8. 栈与队列的变体:堆(Heap)是一种特殊的树形数据结构,用于实现优先队列。双端队列(Deque)允许在两端进行插入和删除操作。 9. 字符串:字符串在许多编程语言中是特殊的数据结构,用于处理文本数据。常见的...

    oracle学习笔记.docx

    "start with"是Oracle SQL中的一个特殊关键字,常用于递归查询,如查询树形结构的数据。例如,`START WITH employees.id = '1' CONNECT BY PRIOR employees.manager_id = employees.id` 这个查询会从id为1的员工开始...

    oracle的索引初步学习.doc

    本文主要关注B树索引,这是一种非常典型的树形结构索引。 ##### 1. B树索引结构 B树索引主要包括三种类型的节点: - **叶子节点(Leaf Node)**:包含指向表中实际数据行的条目。 - **分支节点(Branch Node)**:...

    Oracle函数(chm)

    - `CURSOR`: 游标允许按行处理查询结果,常用于存储过程和PL/SQL块。 8. **自定义函数**: - 使用`CREATE FUNCTION`语句可以创建自定义函数,满足特定业务需求。 9. **其他特殊函数**: - `USER()`: 返回当前...

    oracle索引.pdf

    B树索引是Oracle中最常见的索引类型,它采用树形结构进行数据组织。B树索引主要由叶子节点、分支节点和根节点组成。叶子节点包含指向表数据行的ROWID,而分支节点则包含指向其他分支节点或叶子节点的指针。根节点...

    00571 Oracle公司内部数据库培训资料-Les19_分级查询(PPT 16页).ppt

    在Oracle中,这种查询通过SQL的特殊语法实现,能够有效地生成树形结构的报表,帮助用户理解数据间的上下级关系。在本节的Oracle公司内部培训资料中,我们将深入探讨分级查询的相关知识。 首先,我们要了解分级查询...

Global site tag (gtag.js) - Google Analytics