`
oycn0755
  • 浏览: 113704 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle递归条件查询

阅读更多

首先是需要对表做一个规划,即必须有自己的ID和ID对应这条记录的PID(父ID)。
简单的数据结构如下
id    pid
1      0 
2      0 
3      1 
4      1 
5      2 
6      2 
7      3 
8      4 
9      5 
比如你现在需要取出ID是1的以及其下所有的记录,如:
id pid 
1  0 
3  1 
4  1 
7  3 
8  4

查询语句如下:
假如表名叫test
select * from TEST
start with id=1
connect by prior id = pid
order by id asc

如果有条件语句,比如where or when,其语句放在
start with前面。OK。

分享到:
评论

相关推荐

    oracle递归、迭代

    - `START WITH`: 定义递归查询的起始行条件。 - `CONNECT BY PRIOR`: 定义节点之间的关系。 #### 四、示例说明 假设我们有一个名为`TEST_TREE`的表,该表用来存储一个简单的组织结构: ```sql CREATE TABLE TEST_...

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...

    Oracle 递归函数介绍

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

    oracle递归查询的例子

    1. **START WITH 子句**:用于指定递归查询的起始条件。 2. **CONNECT BY PRIOR 子句**:用于定义递归关系,即如何从上一级记录推导出下一级记录。 3. **LEVEL 关键字**:用于获取当前记录的层级编号,这对于控制...

    Oracle递归SQL学习

    这是Oracle递归查询的关键部分。`connect by`子句定义了层次之间的连接规则。在这里,`prior`关键字用来引用上一层的值,即父节点的`parent_id`应该等于当前行的`id`,这样我们就沿着父到子的方向遍历树。 3. `...

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

    这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的数据库系统中的实现。 首先,我们要理解什么是递归查询。递归查询是一种在数据库中处理层次数据的方法,它通过自身...

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

    描述中提到,使用Oracle递归查询比在程序中实现递归查询速度更快。这是因为数据库系统通常针对这类操作进行了优化,能够更高效地处理层次结构数据。此外,数据库可以利用索引和其他优化技术,提高查询速度。而在应用...

    Oracle递归查询

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

    深入sql oracle递归查询

    Oracle数据库系统提供了两种主要的递归查询方法:一种是使用`WITH`子句配合`UNION ALL`,另一种是使用`START WITH`和`CONNECT BY`。这两种方法都能解决查询层次关系的问题,例如找出某个节点的所有子节点或父节点。 ...

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

    Oracle数据库系统在处理层次数据或树形结构时,提供了强大的工具——递归查询。递归查询允许我们在数据表中处理嵌套级别的数据,这在权限查询、组织结构、产品分类等场景中尤其常见。本文将深入探讨Oracle中的树状...

    数据库设计之递归树查询

    1. 避免无限循环:确保递归查询有一个明确的终止条件,否则可能导致无限循环。 2. 性能考虑:递归查询可能会消耗大量资源,特别是当树非常深或者数据量大时。考虑是否可以通过其他方式(如预计算的层次结构数据、自...

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

    除了基本的递归查询,我们还可以在这些查询中加入其他SQL语句,如`WHERE`子句进行条件过滤,或者`ORDER BY`进行结果排序。同时,为了防止无限递归,通常会设置一个最大递归深度,比如Oracle的`CONNECT_BY_ISCYCLE`和...

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

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

    oracle SQL递归的使用详解

    在Oracle数据库中,SQL递归查询是一种非常有用的工具,它允许我们处理层级关系的数据,例如组织结构、树形目录或有上下级关联的数据。本文将详细介绍如何在Oracle中使用SQL递归语句,并通过示例进行说明。 首先,...

    MySQL多种递归查询方法.docx

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

    Oracle Form自动生成序号

    - 说明: 该标记用于避免在查询期间执行W-C-R(WHEN-CHANGED-READ-ONLY)操作。当`Lines`块的W-C-R触发器结束时,需重置该标记。 - **参数名称**: `max_line_num` - 类型: 数字 - 长度: 30 - 初始值: `0` - ...

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

    - `<start_condition>`:指定递归查询的起始条件,通常为一个确定的记录。 - `<parent_column>`:父节点列,用于构建层级关系。 - `<child_column>`:子节点列,与父节点关联,构成递归的基础。 #### 示例解析 ...

    Oracle 11GR2的递归WITH子查询方法

    Oracle 11GR2的递归WITH子查询是一种强大的功能,它允许你在SQL查询中创建递归关系,处理层级数据,比如组织结构、家族树或依赖关系等。WITH子查询,也称为公共表表达式(CTE),是SQL标准的一部分,自9i版本开始被...

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

    在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形结构。在给定的标题“oracle 使用递归的性能提示测试对比”和描述中,主要讨论了使用`START WITH...CONNECT BY ...

Global site tag (gtag.js) - Google Analytics