`

oracle 中connect by prior 语句递归查找语句的使用

 
阅读更多

--基本语法:
SELECT DISTINCT T.ID 
FROM Sy_Department T 
where .....
START WITH T.ID = ''
CONNECT BY PRIOR T.ID = T.PARENT_ID
如果将父级ID写在等式后面,则表示当前所在节点为父级向下追溯子节点
反之,表示由当前节点作为子节点向上追溯父节点
以上查询结果都包含当前节点。
--高级用法:
SELECT LEVEL, t.* FROM table_name t  
START WITH column_name=?  
CONNECT BY NOCYCLE PRIOR column_father_name=column_name;
这里的NOCYCLE关键字用来防止死循环情况。
LEVEL是一个关键字,用在层次化查询中,用于标识该行结果所在的层次。查询出来的LEVEL是数字,可以通过where条件语句过滤掉不需要的节点。

分享到:
评论

相关推荐

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

    在Oracle数据库中,`Start With.Connect By Prior`子句是执行递归查询的一种强大工具,主要用于处理层次结构数据。这类数据通常存在于组织结构、产品分类、文件系统等场景中,通过递归查询可以方便地获取树状或层级...

    connect_by_prior_递归算法

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

    在db2和oracle中的对树的递归查询语句

    在Oracle中,对树的递归查询主要依赖于`CONNECT_BY`功能。`CONNECT_BY`是Oracle SQL的一个扩展,用于处理层次查询。它允许我们通过指定的连接条件来遍历层级数据,从而进行递归查询。例如,我们可以用以下方式查询一...

    MySQL多种递归查询方法.docx

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

    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中使用递归查询,并通过具体的示例来展示其用法。 #### 二、递归查询的基础概念 递归查询是Oracle中一种特殊的查询方式,主要用于检索具有层次结构的数据。在Oracle中实现递归查询需要...

    Oracle的Connect By使用示例

    例如,在一个员工表中,如果想要查找所有下属及其下属的下属,可以使用`CONNECT BY PRIOR employee_id = manager_id`这样的表达式来定义上下级关系。 2. **Start With**:用来定义查询的起点,即指定哪一行作为树形...

    Oracle_start_with_connect_by_prior_用法

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

    SQL语句 递归

    ### SQL语句递归:Oracle中的递归查询详解 在数据库查询语言中,递归查询是一种非常强大的功能,尤其在处理具有层次结构的数据时尤为重要。本文将深入探讨Oracle数据库中的递归查询,包括其基本语法、工作原理以及...

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

    `START WITH...CONNECT BY PRIOR`是Oracle SQL中的一个特性,用于处理具有层级关系的数据。这个子句允许我们遍历和查询具有父子关系的数据,例如部门和其下属子部门,或者员工和他们的上级经理。 1. **START WITH...

    connect by的使用探索

    1. 列出上下级关系:使用Connect By语句可以递归地查询树形结构的数据,实现上下级关系的查询。 2. 构造序列:Connect By语句可以用于构造序列,例如生成一系列的日期或数字。 3. 实现排列组合:Connect By语句可以...

    Oracle递归查询

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

    数据库设计之递归树查询

    本文将深入探讨如何通过递归查询来解决这类问题,并着重讲解使用`WITH`语句来实现递归查询的方法,适用于多种数据库系统,如MySQL、PostgreSQL、SQL Server等。 一、理解递归查询 递归查询是一种在数据库中遍历层级...

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

    Oracle数据库也支持递归查询,但使用的是`CONNECT BY`语句。对于同样的`menus`表,Oracle的查询可能如下: ```sql SELECT id, parent_id, name, level as depth FROM menus START WITH parent_id IS NULL CONNECT ...

    Oracle递归SQL学习

    Oracle数据库中的递归SQL是一种强大的工具,用于处理层次结构数据,如组织结构、分类树或者层级关系等。在本主题中,我们将深入探讨如何利用递归SQL在Oracle中展示一棵树形结构,以及如何根据父ID遍历所有的子ID。 ...

    Oracle_start_with_connect_by_prior_用法[文].pdf

    在 Oracle 中,START WITH 语句用于指定递归查询的开始记录,而 CONNECT BY 语句用于指定递归查询的条件。 基本语法结构为:SELECT * FROM 表名 WHERE 条件 1 START WITH 条件 2 CONNECT BY PRIOR 当前表字段 = ...

    oracle递归查询的例子

    在数据库查询语言中,Oracle 提供了一种强大的功能——递归查询,这在其他数据库系统如 SQL Server 中是缺失的功能。递归查询允许用户执行多级关联查询,特别适用于处理具有层次结构的数据,例如组织结构图、文件...

    在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf

    ORACLE通过CONNECT BY子句来实现递归查询。CONNECT BY子句通常配合START WITH子句使用,其中START WITH指定了递归的起点,而CONNECT BY用于定义父子关系。CONNECT BY子句中的PRIOR关键字用于表示层级之间的连接,它...

    Oracle查询树形结构

    在 Oracle 中,查询树形结构可以使用 START WITH...CONNECT BY PRIOR 子句实现递归查询。其基本语法是: SELECT * FROM tablename START WITH cond1 CONNECT BY cond2 WHERE cond3; 其中,COND1 是根结点的限定...

    oracle SQL递归的使用详解

    本文将详细介绍如何在Oracle中使用SQL递归语句,并通过示例进行说明。 首先,我们要了解递归查询的基本语法。在Oracle中,递归查询通常使用`START WITH`和`CONNECT BY PRIOR`这两个关键字来实现。`START WITH`用于...

Global site tag (gtag.js) - Google Analytics