`

oracle 实现递归

阅读更多
oracle实现递归的基本语句是 start with column = ? connect by prior [递归条件]


有一个树形结构的数据

表明 test
id     pid    name  

1      0      zhang
2      1      li
3      1      wang
4      2      liu
5      0      zhao

如果从id=1开始遍历出所有的子节点的语句是

select * from test t start with t.id=1 connect by prior t.id = t.pid
遍历出的结果是
1      0      zhang
2      1      li
3      1      wang
4      2      liu

如果从id=4开始遍历出所有的父节点,则语句应该是
select * from test start with t.id = 4 connect by prior t.pid = t.id

如果想添加其他的条件,应该在嵌套一层 ,如下

select * from test t where t.id in
(select * from test start with t.id = 4 connect by prior t.pid = t.id
) and t.name like '%zhang%'


 
分享到:
评论

相关推荐

    oracle-递归查询地区名称

    oracle 递归调用 地区 ,用到的方法是 SYS_CONNECT_BY_PATH,可以扩展层级 名称

    Oracle 递归函数介绍

    在 Oracle 中,递归函数可以使用 CONNECT BY 语句来实现递归查询。CONNECT BY 语句的基本语法如下所示: ```sql SELECT ... FROM ... START WITH ... CONNECT BY ... ``` 其中,`START WITH` 子句指定了递归查询的...

    Oracle递归SQL学习

    这意味着在生成HTML或其他格式的输出时,如果需要递归地展示树结构,我们需要借助其他方法,比如在后端代码(如Java、Python等)中实现递归逻辑,或者寻找支持递归渲染的其他模板引擎。 总的来说,Oracle的递归SQL...

    oracle递归、迭代

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

    Oracle递归查询

    ### Oracle递归查询详解 #### 一、引言 在处理具有层级结构的数据时,递归查询是一项非常有用的技能。例如,在处理组织架构、产品分类等数据时,我们经常需要查询某一节点及其所有子节点或者从某个节点追溯到其根...

    oracle递归查询的例子

    本文将通过一个具体的例子来详细介绍如何在 Oracle 中实现递归查询。 #### 二、基础知识回顾 在深入讨论之前,我们需要先了解几个基础概念: 1. **START WITH 子句**:用于指定递归查询的起始条件。 2. **CONNECT ...

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

    在MySQL中,我们可以使用自连接来实现递归查询。假设我们有一个名为`menus`的表,包含`id`(主键)、`parent_id`(父菜单ID)和`name`(菜单名)字段。可以编写一个如下的SQL查询: ```sql WITH RECURSIVE menu_...

    dhtmlx tree 使用,与oracle递归查询的结合

    这个文件可能包含了用于从Oracle数据库中获取树形结构数据的SQL查询语句,其中可能使用了`CONNECT BY`或`START WITH`等关键字来实现递归。分析这个文件的内容可以帮助我们了解如何构建适合dhtmlx Tree的递归查询。 ...

    使用over函数实现递归汇总计算

    ### 使用 OVER 函数实现递归汇总计算 #### Oracle 分析函数概述 自 Oracle 8.1.6 版本起,Oracle 数据库引入了分析函数(Analytic Functions),这是一种非常强大的工具,主要用于处理复杂的查询需求,尤其是在...

    oracle SQL递归的使用详解

    在Oracle中,递归查询通常使用`START WITH`和`CONNECT BY PRIOR`这两个关键字来实现。`START WITH`用于指定递归的起始条件,而`CONNECT BY PRIOR`则定义了层级之间的关系。 例如,假设我们有一个表格`test`,包含...

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

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

    DB2递归实现

    在Oracle数据库中,有一个专门的语句叫做CONNECT BY,它可以实现递归查询。但是,DB2数据库中没有类似的语句,需要使用公共表表达式(CTE)和UNION ALL来实现递归。 DB2递归实现有很多应用场景,例如组织结构图...

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

    ORACLE、MSSQL(Microsoft SQL Server)、MYSQL是三大主流数据库系统,它们各自提供了不同的方式来实现递归查询。 首先,我们来看ORACLE数据库中的递归查询。ORACLE通过CONNECT BY子句来实现递归查询。CONNECT BY...

    sql_函数实现三种父子递归

    本文将探讨如何使用SQL函数实现三种常见的递归查询:找到所有子节点、查找所有父节点以及面包屑导航数据。我们将通过一个名为`Region`的示例表来说明这些操作。 首先,我们需要一个基础的表结构,如`Category`或`...

    oracle 使用递归的性能提示测试对比

    在给定的标题“oracle 使用递归的性能提示测试对比”和描述中,主要讨论了使用`START WITH...CONNECT BY NOCYCLE PRIOR`语句进行递归查询时的两种不同实现方式,以及它们对性能的影响。 首先,我们来理解这两种不同...

    深入sql oracle递归查询

    Oracle则使用`START WITH` 和 `CONNECT BY` 子句来实现递归查询。对于上述相同的表结构,查询1号节点的所有子节点的Oracle SQL语句如下: ```sql SELECT * FROM aaa START WITH id = 1 CONNECT BY pid = PRIOR id; ...

Global site tag (gtag.js) - Google Analytics