Oracle递归查询(树型查询)

prior放的左右位置决定了检索是自底向上还是自顶向下. 左边是自上而下(找子节点),右边是自下而上(找父节点)

SELECT T.AREA_CODE, T.AREA_NAME, T.AREA_LEVEL
  FROM TBL_SYS_AREA_CODE T
CONNECT BY PRIOR T.AREA_CODE = T.PARENT_AREA_CODE
 START WITH T.PARENT_AREA_CODE = ‘父级‘;
SELECT T.AREA_CODE, T.AREA_NAME, T.AREA_LEVEL
  FROM TBL_SYS_AREA_CODE T
CONNECT BY  T.AREA_CODE = PRIOR T.PARENT_AREA_CODE
 START WITH T.Area_Name = ‘子级‘; 

原文地址:https://www.cnblogs.com/ViokingJava/p/8184858.html

时间: 2024-10-12 21:54:02

Oracle递归查询(树型查询)的相关文章

oracle查找树型结构数据

记录一个oracle中查找树型结构数据的语句: select * from tablewhere XXX start with org_id = 'xx' connect by prior org_id = parent_id; 1.CONNECT BY子句说明每行数据将是按层次顺序检索,并规定将表中的数据连入树型结构的关系中.PRIORY运算符必须放置在连接关系的两列中某一个的前面.对于节 点间的父子关系,PRIOR运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是的顺序是自顶向

ORACLE 递归树型结构统计汇总

区域平台统计报表,省--市--区 汇总,还有各级医院,汇总与列表要在一个列表显示. 用到ORACLE 会话时临时表  GLOBAL TEMPORARY TABLE     ON COMMIT PRESERVE ROWS; 递归树: START WITH P.PARENTORG = 'ROOT'               CONNECT BY PRIOR P.ORGCODE = P.PARENTORG; WITH 连续嵌套 记录一下便于查阅. CREATE OR REPLACE PACKAGE

oracle递归查询树的SQL语句

来自互联网 SELECT * FROM a_ParkingLot AWHERE A.REGIONID IN(    SELECT r.ID FROM a_region r    START WITH r.id='CD79FF2A1E5E49A9B1EAD545A0E05D2C'    CONNECT BY PRIOR r.ID=r.parentid)

ORACLE递归查询(适用于ID,PARENTID结构数据表)

Oracle 树操作(select…start with…connect by…prior) oracle树查询的最重要的就是select…start with…connect by…prior语法了.依托于该语法,我们可以将一个表形结构的以树的顺序列出来.在下面列述了oracle中树型查询的常用查询方式以及经常使用的与树查询相关的oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等. 1.准备测试表和测试数据 1 2 3 4 5 6 7 8 9 10 11 12 1

oracle使用connect by进行级联查询 树型菜单

Oracle使用connect by进行级联查询 树型菜单(转) connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点. 来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:id.name和parent_id.它们是具有父子关系的,最顶级的菜单对应的parent_id为0.现假设我们拥有如下记录: id name parent_id 1 菜单01 0 2 菜单02 0 3 菜单03 0 4 菜单0101 1 5 菜单0102

oracle中的树状查询

oracle中的树状查询 工作中经常会遇到将数据库中的数据以树的形式展现的需求.以下我们来看一下该需求在Oracle中如何实现. 首先我们需要有一个树形的表结构(当然有时候会出现表结构不是典型的树形结构,而是多表存储,需要根据多表连接查询生成树) 一.树型表结构:节点ID  上级ID  节点名称 二.用法: select 节点ID,节点名称,levelfrom 表名connect by prior 节点ID=上级节点IDstart with 上级节点ID=节点值 说明:1.常见的树形结构为公司组

Oracle——星型查询

星型转换的基本思路是尽量避免直接去扫描星型模式中的事实表,因为这些事实表总会因为存有大量数据而十分庞大,对这些表的全表扫描会引起大量物理读并且效率低下.在典型的星型查询中,事实表总是会和多个与之相比小得多的维度表发生连接(join)操作.典型的事实表针对每一个维度表会存在一个外键(foreign key),除去这些键值(key)外还会存在一些度量字段譬如销售额度(sales amount).与之对应的键值(key)在维度表上扮演主键的角色.而事实表与维度表间的连接操作一般都会发生在事实表上的外键

Oracle 之 树查询 START WITH ... CONNECT BY ...子句

START WITH ... CONNECT BY ...子句是结构化查询中用到的,其基本语法是: select - from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'zgs' connect by prior org_id = parent_id; 即,我们将数据以树状结构形式存储在一张表里,比如一个表中存在两个字段:org_id,parent_

Oracle 递归查询

1 select a.accountcodeid, a.accountcode, a.accountcodename, 2 SYS_CONNECT_BY_PATH(a.accountcodename, '\') as fullname, a.parentcodeid, level 3 from fm_accountcode a 4 where a.accountcodeid >= 10000 5 start with a.parentcodeid is null 6 connect by pri