`
kanwoerzi
  • 浏览: 1669137 次
文章分类
社区版块
存档分类
最新评论

oracle 递归查询父子关系记录 (转)

 
阅读更多

oracle 递归查询父子关系记录
数据库中常要处理父子关系的记录,在oracle中可以用查询语句一次把所有的子记录全部取出来。例如下:
t1
t11
t111
t1111
t12
t121
t1211
db数据字段如下:
task_id task_name t.parent_task_id ***
*** *** *** ***
000001 t1 *** ***
000002 t11 000001 ***
000005 t12 000001 ***
000003 t111 000002 ***
000004 t1111 000003 ***
000006 t121 000005 ***
000007 t1211 000006 ***
*** *** *** ***
查询语句:
select t.task_id ,t.task_name ,t.parent_task_id
from t_task t
start with task_id='000001'
connect by prior task_id = parent_task_id;
结果显示:
task_id task_name t.parent_task_id
000001 t1
000002 t11 000001
000003 t111 000002
000004 t1111 000003
000005 t12 000001
000006 t121 000005
000007 t1211 000006

strat with 指定层次开始的条件,即是说满足这个条件的行即可以做为层次树的最顶层

connect by prior指层之间的关联条件,即什么样的行是上层行的子行(自连接条件)

select level ,id,name,parentid from temptable2
connect by prior parentid(属于顶层的列)=id(子层的列) start with id =1
分享到:
评论

相关推荐

    递归查询父子关系记录 oracle

    oracle 如何递归查询父子关系。经常用于构造树结构

    Oracle递归树形结构查询功能

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

    Oracle通过递归查询父子兄弟节点方法示例

    在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,递归查询在Oracle中主要依赖于`START WITH`和`CONNECT BY`子句。`START WITH`指定查询的起始节点,而`...

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

    CONNECT BY子句通常配合START WITH子句使用,其中START WITH指定了递归的起点,而CONNECT BY用于定义父子关系。CONNECT BY子句中的PRIOR关键字用于表示层级之间的连接,它指向前一个步骤得到的列值。例如,如果当前...

    根据父子关系生成目录,oracle适用

    根据父子递归关系生成类似于word的目录,代码包括建表语句,插入语句,及统计语句,建表语句中少写了一个s,表名应该是tb_rules

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

    `START WITH...CONNECT BY`是Oracle中的递归查询语法,`START WITH`指定开始节点,`CONNECT BY`定义父子关系,`NOCYCLE`则用于防止无限递归,`PRIOR`用来指向上一层的父节点。在实际应用中,应根据数据结构和查询...

    Oracle查询树形结构

    根结点是树形结构的起点,连接条件是用于连接父子节点的关系,过滤条件是用于过滤查询结果的条件。 例如,在 DEPT 表中,查询所有部门的树形结构可以使用以下语句: SELECT * FROM persons.dept START WITH deptid...

    oracle SQL递归的使用详解

    这个查询会返回所有以'a'为起点的父子关系链。 3. **递归查询的应用** 递归查询在处理组织结构、层级数据、家族树等场景非常有用。例如,在`comm_org_subjection`表中,我们有`ORG_ID`(当前组织ID)、`FATHER_ORG...

    ORACLE查询树型关系(connect_by_prior_start_with)

    使用 START WITH 和 CONNECT BY 子句,可以 select 数据具有层次关系的数据,通常是一些父子关系、老板员工关系或东西零件关系。此外, START WITH 和 CONNECT BY 子句也被用于解释 SQL 执行计划的语法规则是: ```...

    Oracle树查询实例分析

    除了这些基本操作,Oracle还提供了许多与树查询相关的函数,例如`LEVEL`(用于返回节点在树中的深度)、`CONNECT_BY_ROOT`(返回树路径上的根节点值)和`SYSDATE`(在递归过程中跟踪时间戳)等,这些函数可以增强...

    sql查询某个parentid下的所有childid

    它基于一个称为“连接路径”的概念,允许用户按照某种层次关系对表进行递归查询。主要用到的关键字有: - **PRIOR**:用于指定父行和子行之间的关系。 - **START WITH**:指定递归查询的起始行。 - **CONNECT BY**...

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

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

    Oracle中层次查询的使用和探讨.pdf

    Oracle数据库中的层次查询(Hierarchical Queries)是一种强大的功能,它扩展了标准SQL语言,使得能够高效地处理具有层级关系的数据。这种查询方式尤其适用于处理树形结构的数据,例如组织架构、文件目录等。 首先...

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

    例如,查询具有父子关系的部门结构。两者在语法上基本一致,但HANA不支持Oracle中的`level`和`siblings`关键字,因此在扩展功能上有所限制。 2. **竖转横查询** - Oracle中的`DECODE`函数在HANA中对应的是`MAP`...

    父子结点树转化为多级编码探讨与研究

    - **多级编码的需求**: 在某些应用场景下,需要将这种基于父子关系表示的层级结构转换为多级编码形式。多级编码是一种将层级信息嵌入到编码中的表示方法,可以更直观地展示结点之间的层级关系。 #### 2. SQL 语句的...

    Oracle层次查询和with函数的使用示例

    START WITH指定层次结构的起始点,通常是顶级节点,而CONNECT BY则定义了层次结构中的父子关系。PRIOR关键字用来引用当前行的上一行,以构建层级路径。 在给定的例子中,我们看到一个名为m_depart的数据表,它包含...

    ORACLE面试测试题目

    使用 PL/SQL 按父子层次关系查询表 TEST 的所有数据 - 此问题可能需要更复杂的递归查询或自连接来解决。示例代码如下: ``` SELECT * FROM test a, test b WHERE a.parent_id = b.id ``` ### 20. 如何使用 SQL...

    oracle树结构查询.DOC

    总的来说,Oracle的`START WITH...CONNECT BY`语法提供了一种强大而灵活的方式来处理树形数据,使得我们能够轻松地查询和展示具有层级关系的数据。理解和熟练掌握这些概念,对于处理复杂的组织结构或者其他层次数据...

Global site tag (gtag.js) - Google Analytics