`
duanfei
  • 浏览: 733930 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

多级树的查询

 
阅读更多
START WITH CONNECT BY PRIOR子句实现递归查询
表中第一行1001是1002的父节点,而第二行1002又是1003的父节点,如此循环。如题:要求给出其中一个数字能找出其最终的根节点!应该要怎么样实现呢?请看如下sql语句,这里我就拿1008为例。

图中第一行第一个num1就是根节点了。再来分析下sql语句:

select num1,num2,level

from carol_tmp

start with num2=1008

connect by  num2=prior num1 order by level desc;

prior放的左右位置决定了检索是自底向上还是自顶向下.很明显以上的sql选择了自底向上,所以最终得到了根节点。

这次要求获得最小的叶节点
第一行的num1就是最小的叶节点了,在注意看下sql代码和上面的代码有什么不同之处:

select num1,num2,level

from carol_tmp

start with num2=1008

connect by prior  num2= num1 order by level desc;

这次prior和num2放在了一起,他意思就是从num2开始寻找其下面最小的叶节点。

为什么prior和谁在一起比较重要呢?比如prior和 num2同在等号的一边,这个时候要看num2和num1的关系。若num2一直是parent,那么这个sql找的就是根节点。

SELECT SYS_CONNECT_BY_PATH(ename, '>') "Path"    
FROM scott.emp    
START WITH ename = 'KING'    
CONNECT BY PRIOR empno = mgr; 
 


>KING
>KING>JONES
>KING>JONES>SCOTT
>KING>JONES>SCOTT>ADAMS
>KING>JONES>FORD
>KING>JONES>FORD>SMITH
>KING>BLAKE
>KING>BLAKE>ALLEN
>KING>BLAKE>WARD
>KING>BLAKE>MARTIN
>KING>BLAKE>TURNER
>KING>BLAKE>JAMES
>KING>CLARK
>KING>CLARK>MILLER
分享到:
评论

相关推荐

    Android多级树形菜单的实现

    在Android开发中,多级树形菜单是一种常见的用户界面元素,用于展示层次结构的数据,比如文件系统、组织架构等。本篇文章将详细讲解如何在Android中实现这样的功能,主要涉及的技术点包括`ExpandableListView`组件和...

    struts2 hibernate 实现无限级联 树形分类

    在这个"struts2 hibernate 实现无限级联 树形分类"项目中,主要目标是创建一个能够展示无限级联的树形分类结构。这种结构通常用于组织层次化的数据,如产品类别、部门结构或者权限角色等。无限级联意味着这个树可以...

    jquery下拉多级树选择插件(支持左右移动,以及模糊搜索功能).zip

    本项目聚焦于一个基于jQuery的下拉多级树选择插件,该插件具备左右移动功能和模糊搜索特性,极大地提高了用户在下拉列表中的操作效率。 首先,我们来深入理解这个插件的核心特点: 1. **多级树结构**:此插件能够...

    改进的多级树形菜单dtree,eclipse开发。mysql数据库,S2SH架构—(1)

    改进的多级树形菜单dtree,eclipse开发。mysql数据库,S2SH架构,有源码和jar包。 共两部分。这是第一部分

    通用内存多级树 linux32 SDK V3.0

    2、内存多级树树SDK中的API支持以下功能 1)插入节点 2)精确删除节点 3)正向模糊匹配 4)反向模糊匹配 5)精确查询节点 6)获取头(尾)节点 7)删除头(尾)节点 8)排序 9)支持多级树 10)支持强大的查询节点...

    oracle菜单树查询

    oracle菜单树查询 使用实例 使用START WITH CONNECT BY PRIOR子句实现递归查询

    SQL处理多级分类,查询结果呈树形结构

    总的来说,通过SQL的递归公共表表达式(CTE),我们可以有效地处理多级分类数据,生成树形结构的查询结果,减少对数据库连接池的压力,提高查询效率。对于大型数据集,优化索引和数据库设计也能进一步提升性能。在...

    bootstrap-treeview 实现的web后台管理 多级(无限级)分类菜单-springboot mybatis mysql

    bootstrap-treeview 实现的web后台管理常用到的左侧 多级(无限级)分类菜单-idea springboot mybatis mysql技术实现,完整的一个小实例,有效果图,数据库表字段,下载即可运行。

    漂亮的JS多级树型下拉菜单

    4. **递归处理**:对于多级树,可能需要递归地处理每个菜单项,检查它们是否有子节点,如果有,则继续添加子菜单。这可以通过函数递归来实现,每次调用自身处理子菜单直到没有更多的子节点为止。 5. **动画效果**:...

    多级目录的数据库设计

    通过递归查询可以获取整个目录树。 2. **邻接列表法**:同样使用一个“目录”表,但增加一个字段表示每个目录的直接上级。查询时,需要通过遍历上级目录ID链来构建完整的路径。 3. **路径编码法**:每个目录都有一...

    树形框(access数据库)扩充多级目录

    以下将详细介绍如何在Access数据库中实现树形框的扩充和多级目录功能。 1. **理解树形框基础**:首先,了解树形框的基本构成,包括根节点、子节点和叶节点。每个节点可以有多个子节点,形成一个层级关系。在Access...

    基于mybatis的collection标签实现帖子评论多级回复以及关联用户信息查询

    在本场景中,我们探讨的是如何利用MyBatis的`collection`标签来实现帖子评论的多级回复以及与用户信息的关联查询。MyBatis是一个强大的Java持久层框架,它简化了数据库操作,使得开发者能更专注于SQL语句本身,而...

    jQuery实现多级手风琴树形下拉菜单multi_menu.rar

    本项目“jQuery实现多级手风琴树形下拉菜单multi_menu.rar”就是一个典型的例子,它允许用户轻松创建具有动画效果的多级手风琴式下拉菜单,提升了用户在浏览网站时的导航体验。 手风琴菜单是一种常见的UI设计模式,...

    MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)

    "MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...

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

    递归查询能够遍历整个树形结构,逐层构建多级编码。 - **字符串拼接**: 在构建多级编码的过程中,涉及到字符串的拼接操作。例如,将父结点的编码与子结点的编码连接起来形成新的编码。 - **排序处理**: 为了保证新...

    数据库设计之递归树查询

    在多级分类、组织架构、家族树等场景中,递归查询能有效地获取所需信息。 二、`WITH`语句简介 `WITH`语句,也称为公用表表达式(Common Table Expression, CTE),是SQL中的一种临时结果集,用于定义一个临时的逻辑...

    纯css多级下拉菜单兼容ie6+主流浏览器

    7. **响应式设计**:考虑到不同设备的屏幕尺寸和触摸操作,可以使用媒体查询(`@media`)来调整下拉菜单在不同屏幕大小下的表现。 8. **优化性能**:避免使用过于复杂的CSS选择器和属性,因为这可能影响到页面的...

    多级联动demo

    在这个过程中,可能涉及到的数据结构是树形结构,每一级都是一个节点,节点间存在父子关系。 在“多级联动demo”中,包含了一个国家地区的数据库,这可能是以JSON格式存储的,或者是SQL数据库中的表结构。数据库中...

    使用Oracle游标实现多级展开菜单树.pdf

    在数据库管理和开发中,构建多级展开的菜单树是一个常见的需求,特别是在大型系统中,为了方便用户直观地浏览和操作复杂的菜单结构。Oracle数据库提供了一种有效的方法,即通过游标来实现这一功能。本文将深入探讨...

    在MS SQL Server中实现多级树

    在SQL Server中,我们可以使用自连接、递归查询或特定的数据类型(如hierarchyid)来创建多级树。自连接是通过在同一个表中引用自身来模拟层次关系,而递归查询则是在查询中调用自身以遍历整个树。`hierarchyid` 是...

Global site tag (gtag.js) - Google Analytics