--测试数据 create table test_lvl1 (id number, parent_id number, name varchar2(10)); insert into test_lvl1 values (1,null,'SLI1'); insert into test_lvl1 values (2,1,'SLI2'); insert into test_lvl1 values (3,1,'SLI3'); insert into test_lvl1 values (4,null,'SLI4'); insert into test_lvl1 values (5,2,'SLI5'); insert into test_lvl1 values (6,3,'SLI6'); insert into test_lvl1 values (7,5,'SLI7'); select * from test_lvl1; /* 解释一下: 1. Start with表示从那一层开始的,后面跟表达式,如: pid=0, 寻找继承关系时,指定的顶点,如果需要对整个表进行整理,比较常用 的作法是: PID is null. 例如这种情况顶点的Parent_ID显然是NULL, 所以从PID is null开始无疑是最完整的。 2. prior 表示返回所以符合这种条件(如id=pid)的connect by操作结果. */ select name, ID, PARENT_ID, LEVEL from test_lvl1 start with parent_id is null connect by prior id = PARENT_ID --连接条件 order by id -- 使用连接查询 select a.* ,b.name as parentName from test_lvl1 a left join (select name, ID, PARENT_ID, LEVEL from test_lvl1 start with parent_id is null connect by prior id = PARENT_ID) b on a.parent_id = b.id order by a.id -- sql 1992语法连接查询 select a.*, b.name as parent_name from (select name, ID, PARENT_ID, LEVEL from test_lvl1 start with parent_id is null connect by prior id = PARENT_ID) a, test_lvl1 b where a.parent_id = b.id(+) -- + 表示补充,b表就是匹配表,左表全部显示。 order by a.id
相关推荐
### Oracle Start With.Connect By Prior 子句实现递归查询 #### 概述 在Oracle数据库中,`Start With.Connect By Prior`子句是执行递归查询的一种强大工具,主要用于处理层次结构数据。这类数据通常存在于组织...
在Oracle数据库中,递归查询可以通过`START WITH CONNECT BY PRIOR`语句实现。此语句允许用户按照树状结构来检索数据。 ##### 1. `START WITH CONNECT BY PRIOR`用法详解 **基本语法**: ```sql SELECT * FROM ...
递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的层级查询,以展示数据的层次关系。 在Oracle中,树形结构查询的基本语法如下: ```sql SELECT [LEVEL], * FROM table_name START ...
connect by递归查询基本语法是: select 1 from 表格 start with … connect by prior id = pId start with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123 ...
### Oracle数据库中的START WITH 和 CONNECT BY 用法详解 在Oracle数据库中,处理层次结构数据时,`START WITH` 和 `CONNECT BY` 是非常有用的两个关键字。这些关键字可以帮助我们在查询时构建出树形或者层级结构的...
### Oracle中的START WITH CONNECT BY PRIOR 用法详解 #### 一、概念介绍 在Oracle数据库中,`START WITH` 和 `CONNECT BY PRIOR` 是两个非常强大的特性,主要用于处理具有层级结构的数据。这两个特性可以帮助我们...
ORACLE 查询树型关系(connect_by_prior_start_with) Oracle 查询树型关系是指使用 START WITH 和 CONNECT BY 子句来实现 SQL 的层次查询。从 Oracle 9i 开始,可以通过 SYS_CONNECT_BY_PATH 函数实现将父节点到...
总结来说,`START WITH...CONNECT BY PRIOR`子句是Oracle SQL处理树形数据的关键工具,通过它可以有效地查询和展示层次关系的数据。理解并熟练运用这个子句,能够帮助你在处理具有层级结构的业务场景时更加游刃有余...
### Oracle中的Connect By Prior递归算法详解 #### 一、Connect By Prior 子句概述 在Oracle数据库中,`Connect By Prior`子句是一种非常有用的工具,尤其在处理具有层次结构的数据时。它允许用户以一种简洁的方式...
Oracle 连接查询是指使用 START WITH 和 CONNECT BY 语句来实现递归查询的方法,这种方法可以生成树形结构的数据。在 Oracle 中,START WITH 语句用于指定递归查询的开始记录,而 CONNECT BY 语句用于指定递归查询的...
本文将深入探讨如何通过递归查询来解决这类问题,并着重讲解使用`WITH`语句来实现递归查询的方法,适用于多种数据库系统,如MySQL、PostgreSQL、SQL Server等。 一、理解递归查询 递归查询是一种在数据库中遍历层级...
Oracle数据库系统在处理层次数据或树形结构时,提供了强大的工具——递归查询。递归查询允许我们在数据表中处理嵌套级别的数据,这在权限查询、组织结构、产品分类等场景中尤其常见。本文将深入探讨Oracle中的树状...
通过合理地定义`START WITH`和`CONNECT BY PRIOR`子句,可以方便地检索出任何复杂的层级结构数据。此外,结合`ORDER SIBLINGS BY`子句,还可以对查询结果进行排序,以满足不同场景的需求。希望本文能帮助读者更好地...
Oracle数据库中的`CONNECT BY PRIOR`是一个强大的查询构造器,用于处理树形数据结构,尤其在组织层级、部门结构或者员工管理系统中非常常见。这个功能允许我们从一个或多个根节点开始,按照指定的规则遍历整个树结构...
总之,Oracle的`CONNECT_BY`和DB2的`WITH RECURSIVE`是两个数据库系统处理树形结构数据的重要工具,掌握它们的用法和优化策略,对于提升数据库开发和管理能力有着积极的影响。在实际工作中,我们需要根据具体需求和...
在Oracle数据库中,递归查询主要依赖于`START WITH`和`CONNECT BY PRIOR`两个关键语法。本文将详细介绍这些概念以及具体的使用方法。 #### 二、创建示例表 为了更好地理解Oracle中的递归查询,我们首先需要创建...
1. 列出上下级关系:使用Connect By语句可以递归地查询树形结构的数据,实现上下级关系的查询。 2. 构造序列:Connect By语句可以用于构造序列,例如生成一系列的日期或数字。 3. 实现排列组合:Connect By语句可以...
Oracle数据库也支持递归查询,但使用的是`CONNECT BY`语句。对于同样的`menus`表,Oracle的查询可能如下: ```sql SELECT id, parent_id, name, level as depth FROM menus START WITH parent_id IS NULL CONNECT ...
### Oracle 递归查询详解及实例 #### 一、引言 在数据库查询语言中,Oracle 提供了一种强大的功能——递归查询,这在其他数据库系统如 SQL Server 中是缺失的功能。递归查询允许用户执行多级关联查询,特别适用于...