Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。
创建示例表:
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
插入测试数据:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid
从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id
=====
对于oracle进行简单树查询(递归查询)
DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)
部门id 父部门id(所属部门id) 部门名称
通过子节点向根节点追朔.
Sql代码
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
Sql代码
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
通过根节点遍历子节点.
Sql代码
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
Sql代码
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
可通过level 关键字查询所在层次.
Sql代码
select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
Sql代码
select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
再次复习一下:start with ...connect by 的用法, start with 后面所跟的就是就是递归的种子。
递归的种子也就是递归开始的地方 connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;
connect by prior 后面所放的字段是有关系的,它指明了查询的方向。
分享到:
相关推荐
然后,利用这个树结构,我们可以开发一个用户界面,展示数据表的树形视图。用户可以通过点击节点来加载或隐藏子节点,从而实现交互式浏览。 总之,MySQL数据表导出到XML文件是一个涉及数据库连接、数据查询、XML...
在IT领域,尤其是在数据分析、前端展示以及数据管理中,数据表转化成树形结构是一种常见的需求。这有助于我们更好地理解层次关系数据,并提供更直观的视觉体验。本篇将详细探讨如何将数据库中的数据转化为树形结构,...
VBA可以连接到Access数据库,执行SQL查询,然后将结果以树形视图的形式展示在Excel的工作表上。用户可以点击目录节点展开或折叠其子节点,实现数据的动态浏览。 4. 数据绑定:在Excel中,可以设置数据源为数据库,...
在Web开发中,将数据库中的数据以树形菜单的形式展示在页面上是一种常见的需求,尤其在网站导航、文件管理系统或组织结构展示等场景下。本文将深入探讨如何实现这一功能,主要关注三个关键点:从数据库获取数据、...
本文通过一个具体案例——树形菜单的数据表设计,阐述如何合理利用冗余数据来优化数据库结构,并讨论传统设计方案存在的不足之处。 #### 树形菜单设计背景 树形结构在计算机科学领域中有着广泛的应用,尤其是在...
在单数据库表实现中,整个树形结构的数据存储在一个数据库表中。每个记录都会包含一个额外的指针字段,这个字段用来存放父节点的编号。根节点的指针字段为空,表示没有父节点。这种实现方式的关键在于如何设计表结构...
数据库中的数据通常以表格的形式存在,包含多个表,每个表由列(字段)和行(记录)组成。要将这些数据转换为树形图,我们需要进行以下几个步骤: 1. 数据提取:使用SQL查询语句或者ORM(对象关系映射)工具,如...
本篇文章将深入探讨如何在Django项目中结合ZTree插件,从MySQL数据库中读取数据表,并将这些数据以树状目录的形式展示出来。我们将讨论以下关键知识点: 1. Django框架: Django是一个开源的Web框架,遵循MTV...
- 页面布局采用了`frameset`标签,将页面分为两个区域:左侧为树形菜单区(`tree.jsp`),右侧为内容显示区(`content.jsp`)。 - 为了使树形菜单具有动态效果,还需要编写一个控制器类`TreeController.jpf`来处理...
树形结构数据是一种数据结构,它以树状图的形式存储数据元素之间的关系,比如文件系统的目录结构、组织架构、家族谱系等。每棵树由若干节点构成,其中一个节点作为根节点,其它节点分成若干不相交的子树,每个子树又...
在Excel中,树形字典通常指的是通过表格形式表示的具有层级关系的数据。例如,一个物料管理系统中的材料字典可能包含多个层次,如大类、中类、小类和具体物料,它们之间存在父子关系。这样的结构在Excel中可以通过多...
Qt的树形控件允许开发者以节点和子节点的形式呈现数据,非常适合表示文件系统、组织结构或者层级关系的数据。 标题中的"树形控件封装"指的是将Qt的树形控件功能进行抽象和包装,以便在项目中更方便地使用。封装通常...
在本资源中,提到的是通过数据库管理树形框结构数据,这意味着数据将以树状结构的形式展示,便于用户以层次化的视图进行交互。 树形框结构是一种UI设计模式,常用于显示具有层级关系的数据。这种结构由节点组成,每...
在树形菜单中,数据通常存储在数据库中,通过SQL查询获取并展示。数据库表是数据的二维表格形式,每个表由列和行组成,列定义了数据类型,行代表具体的数据实例。在本案例中,可能存在一个或多个表来存储菜单的层次...
4. **树形结构扁平化**:反之,如果有一个树形结构的JSON,我们可能需要将其转换回扁平化的形式,这在处理大规模数据或进行特定查询时很有用。这通常涉及到遍历整个JSON结构,并记录每个节点及其路径。例如,使用...
树形菜单是一种用户界面元素,它以节点的形式展示数据,并通过层级结构来表示数据之间的关系。每个节点可以有子节点,形成一个父节点-子节点的关系,就像一棵倒置的树。在网页或应用程序中,这种菜单通常用于文件...
基于数据库的树形菜单组件的核心是将数据库中的数据结构转换为前端可展示的树状结构。这通常涉及到以下几个步骤: 1. 数据库设计:为了存储树形结构的数据,我们需要设计一个合适的数据库模型。这可能包括一个包含...
3. **TreeView**:TreeView组件是用于展示层次结构数据的一种形式,通常以折叠/展开的节点形式展现。在Bootstrap Treeview中,每个节点可以包含子节点,可以通过点击图标进行展开或折叠,方便用户浏览和操作。 4. *...
树形结构是一种数据组织形式,常用于表示层次关系,如组织架构、目录结构或分类系统等。在SQL中,通常使用递归查询或自连接来模拟树形结构的遍历。下面我们将深入这两个方法。 1. **正查关系表树形结构**: 正查...
这种菜单通常以节点的形式呈现,每个节点可以展开或折叠,显示其子节点。在给定的资源中,我们看到一个基于JSP实现的树形菜单,它还整合了MySQL数据库,这表明它能够动态地从数据库中获取并展示数据。 首先,我们...