select branchid from branch where parentbranchid='BRA0000000000001' order by branchid --第一句只能查询出父节点是BRA0000000000001的所有子节点 select br.branchid from Branch br start with br.branchid = 'BRA0000000000001' connect by Nocycle Prior br.branchid = br.parentbranchid --这一句能查出父节点是BRA0000000000001的所有子节点,然后它的子节点的--子节点都能查出来 --语法: [ START WITH condition ] CONNECT BY [ NOCYCLE ] condition select abbrname,branchid,A.PARENTBRANCHID,branchtype,branchstatus,LEVEL from branch a where a.branchstatus='BRANCHSTATUS_1' AND a.branchtype='BRANCHTYPE_30' start with a.branchid='BRA0000000000002' connect by nocycle prior a.branchid = a.parentbranchid;
--正向递归查询(根据id查询自己和自己一下的数据)
- select * from table
- start with id=9842
- connect by prior id= parentId
- order by id
- select * from table
- start with id=9842
- connect by nocycle prior parentId=id
- order by id
相关推荐
ORACLE 查询树型关系(connect_by_prior_start_with) Oracle 查询树型关系是指使用 START WITH 和 CONNECT BY 子句来实现 SQL 的层次查询。从 Oracle 9i 开始,可以通过 SYS_CONNECT_BY_PATH 函数实现将父节点到...
- `CONNECT_BY_ROOT`函数用于获取树的根节点值,简化结果处理。 - `LEVEL`伪列提供当前节点在树中的深度,有助于分层显示和限制查询深度。 6. **注意事项** - 递归查询可能导致大量的回溯,因此要确保有适当的...
CONNECT BY NOCYCLE PRIOR id = relation MINUS SELECT * FROM DUAL WHERE EXISTS (SELECT * FROM test t1, test t2 WHERE t1.id = PRIOR t2.relation AND t1.relation = t2.id); ``` #### 七、结论 通过上述示例,...
在给定的标题“oracle 使用递归的性能提示测试对比”和描述中,主要讨论了使用`START WITH...CONNECT BY NOCYCLE PRIOR`语句进行递归查询时的两种不同实现方式,以及它们对性能的影响。 首先,我们来理解这两种不同...
Oracle数据库中的CONNECT BY子句是实现阶层查询的主要方式,它允许我们通过定义连接条件来遍历层级结构。 首先,理解CONNECT BY的基本语法结构至关重要。一个基本的阶层查询可能包含以下部分: 1. **SELECT**:...
- 递归查询基于`CONNECT BY`或`START WITH`子句实现。 - 示例:`WITH RECURSIVE cte (id, parent_id, level) AS (SELECT id, parent_id, 1 FROM table WHERE parent_id IS NULL UNION ALL SELECT t.id, t.parent_id,...