`
pengfeng
  • 浏览: 230474 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Oracle递归查询-start with ... connect by prior

阅读更多

一、基本使用

start with ... connect by prior SQL语法格式:

 

 

SELECT column  
FROM table_name   
START WITH column=value   
CONNECT BY PRIOR 父主键=子外键

 

 

示例:

 

create table XT_RESOURCE
(
   RESOURCE_DM        VARCHAR2(20) not null,   --资源代码
   RESOURCE_NAME      VARCHAR2(60),            --资源名称
   RESOURCE_URL       VARCHAR2(300),           --资源URL地址
   RESOURCE_TYPE      VARCHAR2(1),             --资源类型
   RESOURCE_DM_SJ     VARCHAR2(20),            --上级资源代码
   RESOURCE_CX        NUMBER(4),               --次序
   RESOURCE_MS        VARCHAR2(120),           --资源描述
   YXBZ               VARCHAR2(1)              --有效标志
)

 RESOURCE_DM为主键,RESOURCE_DM_SJ为父节点,RESOURCE_CX是排序字段,NAME是节点名称

 

不带排序示例:

 

SELECT D.* FROM XT_RESOURCE D    
  START WITH D.RESOURCE_DM_SJ=0   
  CONNECT BY PRIOR D.RESOURCE_DM=D.RESOURCE_DM_SJ

 

带排序示例:

 

SELECT D.*, LEVEL FROM XT_RESOURCE D    
  START WITH D.RESOURCE_DM_SJ=0   
  CONNECT BY PRIOR D.RESOURCE_DM=D.RESOURCE_DM_SJ ORDER SIBLINGS BY RESOURCE_CX

 

注:在 Oracle 中,ORDER SIBLINGS BY 定义返回时同一父亲下各个兄弟之间的顺序

 

 

 

 

分享到:
评论

相关推荐

    Oracle start with.connect by prior子句实现递归查询

    ### Oracle Start With.Connect By Prior 子句实现递归查询 #### 概述 在Oracle数据库中,`Start With.Connect By Prior`子句是执行递归查询的一种强大工具,主要用于处理层次结构数据。这类数据通常存在于组织...

    树状数据库表:Oracle中start with...connect by prior子句用法

    总结来说,`START WITH...CONNECT BY PRIOR`子句是Oracle SQL处理树形数据的关键工具,通过它可以有效地查询和展示层次关系的数据。理解并熟练运用这个子句,能够帮助你在处理具有层级结构的业务场景时更加游刃有余...

    MySQL多种递归查询方法.docx

    在Oracle数据库中,递归查询可以通过`START WITH CONNECT BY PRIOR`语句实现。此语句允许用户按照树状结构来检索数据。 ##### 1. `START WITH CONNECT BY PRIOR`用法详解 **基本语法**: ```sql SELECT * FROM ...

    Oracle递归树形结构查询功能

    递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的层级查询,以展示数据的层次关系。 在Oracle中,树形结构查询的基本语法如下: ```sql SELECT [LEVEL], * FROM table_name START ...

    oracle-tree-sql.rar_oracle

    Oracle提供了一种称为“连接查询”(Connect By)的特有语法,使得我们可以方便地对具有层级关系的数据进行检索。本资料"oracle-tree-sql.rar_oracle"主要探讨的就是如何在Oracle中使用SQL查询树形结构数据。 一、...

    oracle递归查询的例子

    - **START WITH 子句**:这里指定了递归查询的起点,即当 `relation` 字段值为 `1` 的记录作为根节点开始查询。 - **CONNECT BY PRIOR 子句**:定义了递归关系。在这里,`PRIOR id` 表示当前记录的父节点(上一级)...

    Oracle递归查询start with connect by prior的用法

    在Oracle中,`START WITH` 和 `CONNECT BY` 是进行递归查询的关键字,它们允许我们从一个特定的根节点出发,沿着预定义的关系链接遍历整个树形结构。本文将深入探讨这两个关键字的用法,并通过实例来说明其在实际...

    Oracle_start_with_connect_by_prior_用法

    ### Oracle中的START WITH CONNECT BY PRIOR 用法详解 #### 一、概念介绍 在Oracle数据库中,`START WITH` 和 `CONNECT BY PRIOR` 是两个非常强大的特性,主要用于处理具有层级结构的数据。这两个特性可以帮助我们...

    oracle递归、迭代

    在Oracle中实现递归查询需要用到`START WITH... CONNECT BY PRIOR`语法。 #### 三、递归查询的基本语法 递归查询的基本语法如下: ```sql SELECT column_name(s) FROM table_name START WITH start_condition ...

    TN-HDB-0003-HANA SQL参考及Oracle对照-v0.6.docx

    - 在Oracle和HANA中,都可以使用`START WITH...CONNECT BY PRIOR`来执行递归查询,以构建树形结构的数据集。例如,查询具有父子关系的部门结构。两者在语法上基本一致,但HANA不支持Oracle中的`level`和`siblings`...

    HANA-SQL参考及Oracle对照-v0.6.docx

    HANA 和 Oracle 中的递归查询语句都是使用 start with…connect by prior 语句实现的。然而,HANA 中没有 level、siblings 关键字,无法像 Oracle 有额外扩展功能。 2. 竖转横查询 竖转横查询可以将竖向的数据转换...

    Oracle中的树状查询(递归查询)

    递归查询基于`CONNECT BY`子句,它允许我们定义一个起始点并根据特定条件进行递归。`PRIOR`关键字用于指定当前行与父行的关系。通过这些工具,Oracle可以构建出一个层次结构,展示出数据的树状关系。 2. **基本...

    Oracle_start_with_connect_by_prior_用法[文].pdf

    Oracle 连接查询是指使用 START WITH 和 CONNECT BY 语句来实现递归查询的方法,这种方法可以生成树形结构的数据。在 Oracle 中,START WITH 语句用于指定递归查询的开始记录,而 CONNECT BY 语句用于指定递归查询的...

    ORACLE查询树型关系(connect_by_prior_start_with)

    ORACLE 查询树型关系(connect_by_prior_start_with) Oracle 查询树型关系是指使用 START WITH 和 CONNECT BY 子句来实现 SQL 的层次查询。从 Oracle 9i 开始,可以通过 SYS_CONNECT_BY_PATH 函数实现将父节点到...

    Oracle递归查询

    在Oracle数据库中,递归查询主要依赖于`START WITH`和`CONNECT BY PRIOR`两个关键语法。本文将详细介绍这些概念以及具体的使用方法。 #### 二、创建示例表 为了更好地理解Oracle中的递归查询,我们首先需要创建...

    递归查询菜单树,支持mysql,oracle

    `START WITH`定义了开始节点(顶级菜单),`CONNECT BY`指定了递归连接条件(当前行的父菜单ID等于上一行的ID),而`level`表示菜单的深度。 在实际应用中,通常还需要创建相应的表结构来存储这些菜单数据。例如,`...

    数据库设计之递归树查询

    虽然Oracle数据库不直接支持`WITH RECURSIVE`,但它提供了`CONNECT BY`关键字来处理树形结构。以下是在Oracle中进行递归查询的例子: ```sql SELECT id, name, CONNECT_BY_ROOT id AS root_id FROM employees START...

    oracle中connect-by-prior用法,实战解决日期分解问题.docx

    Oracle数据库中的`CONNECT BY PRIOR`是一个强大的查询构造器,用于处理树形数据结构,尤其在组织层级、部门结构或者员工管理系统中非常常见。这个功能允许我们从一个或多个根节点开始,按照指定的规则遍历整个树结构...

    connect_by_prior_递归算法

    ### Oracle中的Connect By Prior递归算法详解 #### 一、Connect By Prior 子句概述 在Oracle数据库中,`Connect By Prior`子句是一种非常有用的工具,尤其在处理具有层次结构的数据时。它允许用户以一种简洁的方式...

Global site tag (gtag.js) - Google Analytics