文档章节

层次化查询

海贼爱音乐
 海贼爱音乐
发布于 2017/08/15 16:15
字数 400
阅读 44
收藏 0
点赞 0
评论 0

层次化查询,即树型结构查询,是SQL中经常用到的功能之一,通常由根节点,父节点,子节点,叶节点组成。

SELECT [LEVEL] ,column,expression,...
FROM table_name
[WHERE where_clause]
[[START WITH start_condition] [CONNECT BY PRIOR prior_condition]];

CONNECT_BY_ISCYCLE:伪列,如果当前行有一个子行,且子行又是当前行的祖先行,CONNECT_BY_ISCYCLE返回1,否则返回0。只有在CONNECT BY从句中指定了NOCYCLE参数,才能指定CONNECT_BY_ISCYCLE。由于CONNECT BY存在循环数据,NOCYCLE能使Oracle返回查询结果,否则将查询失败。
CONNECT_BY_ISLEAF:伪列,如果当前行是CONNECT BY条件定义树的叶子节点,CONNECT_BY_ISLEAF伪列返回1,否则返回0。该信息也表明了一个给定的行是否可以进一步扩张,表现出更多的层次。
LEVEL:伪列,用于表示树的层次
start_condition:层次化查询的起始条件
prior_condition:定义父节点和子节点之间的关系,PRIOR指定父节点。作为运算符,PRIOR和加(+)减(-)运算的优先级相同。condition ... PRIOR expr = expr 或者 ... expr = PRIOR expr

例子使用Oracle的示例用户HR用户

SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID,DEPARTMENT_ID FROM EMPLOYEES;

图片说明

  1. 从根节点开始遍历
SELECT LEVEL,EMPLOYEE_ID,FIRST_NAME,MANAGER_ID,DEPARTMENT_ID FROM EMPLOYEES
START WITH EMPLOYEE_ID=100 CONNECT BY PRIOR EMPLOYEE_ID=MANAGER_ID;

输入图片说明
2. 从非根节点开始遍历

SELECT LEVEL,EMPLOYEE_ID,FIRST_NAME,MANAGER_ID,DEPARTMENT_ID FROM EMPLOYEES
START WITH FIRST_NAME='Lex' CONNECT BY PRIOR EMPLOYEE_ID=MANAGER_ID;

输入图片说明
3. 从下向上遍历树。交换父节点与子节点在CONNECT BY PRIOR子句中的顺序

SELECT LEVEL,EMPLOYEE_ID,FIRST_NAME,MANAGER_ID,DEPARTMENT_ID FROM EMPLOYEES
START WITH EMPLOYEE_ID=105 CONNECT BY PRIOR MANAGER_ID=EMPLOYEE_ID;

输入图片说明

这篇文章写的更清楚

© 著作权归作者所有

共有 人打赏支持
海贼爱音乐
粉丝 1
博文 87
码字总数 22611
作品 0
广州
CEO
ModeShape 简要

ModeShape 是一个分布式的,层次化的,事务的,一致的数据存储, 支持查询,全文检索, 事件, 版本化, 以及灵活的,动态模式. 它非常快, 可用性搞, 极易伸缩, 并且100%开源, 由Java开发. 客户端可以...

麦地兜兜
2012/12/01
1K
0
数据挖掘 自习笔记 第三章 定性归纳实践(上)

基于属性归纳的基本思想就是首先利用关系数据库查询来收集与任务相关的数据并通过对任务相关的数据并通过对任务相关数据集中各属性不同值个数的检查完成数据泛化操作。 下面是《数据挖掘导论...

urge104
2013/05/15
0
16
pureXML的技术应用及展望

pureXML技术及混合型数据库的出现,超越了关系型数据库固有的局限性,为数据库的应用及开发开辟了新的领域。其意义不仅仅是提供了一种存储XML数 据的更有效的方式,可用于广泛使用XML数据的各...

红薯
2009/03/18
0
0
采用Tokyo Cabinet的一些问题

我们经常需要一些内存数据库,进行key-value的插入,查询,更新操作。需求基本上有几个层次 内存操作,方便使用 处理快,稳定性,占用内存多少等 持久化问题 在这里说说用过的一些Nosql。没有...

TrevorKuo
2015/09/02
42
0
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(六)

六、维度层次 大多数维度都具有一个或多个层次。例如,日期维度就有一个四级层次:年、季度、月和日。这些级别用date_dim表里的列来表示。日期维度是一个单路径层次,因为除了年-季度-月-日这...

wzy0623
2016/07/25
0
0
阿里云&数数科技联合打造新一代游戏数据分析系统正式上线

一、行业综述 随着游戏产业进入成熟期,行业竞争日益激烈,给企业的市场运营及拓展带来了极大挑战,主要体现在两方面: 在这样的背景下,越来越多的公司开始重视数据化运营体系的构建,通过基...

亲君123
05/23
0
0
基于 PostgreSQL 的图数据库--AgensGraph

AgensGraph 是一个基于 PostgreSQL 的图数据库。 属性图模型: 数据对象: Labels : 同时,AgensGraph 也是用于现代复杂数据环境的新一代多模型图数据库,它同时支持关系和图数据模型。因此,...

匿名
2017/10/09
2.8K
8
HAWQ取代传统数仓实践(十八)——层次维度

一、层次维度简介 大多数维度都具有一个或多个层次。例如,示例数据仓库中的日期维度就有一个四级层次:年、季度、月和日。这些级别用date_dim表里的列表示。日期维度是一个单路径层次,因为...

wzy0623
2017/06/12
0
0
怎样通过信息化提高工厂工业化效率?

关于怎样通过信息化提高工厂工业化效率问题,我有3点想法: 1、在企业的供应链中引入物联网技术,为企业决策者实时,准确,智能的提供供应链中各个环节的准确信息。如:智能仓库,智能车间等...

lq2011
06/29
0
0
Oracle开发技能提升之层次查询全面解析

作者介绍 丁俊,DBAplus社群联合发起人,性能优化专家,Oracle ACEA。电子工业出版社终身荣誉作者,《剑破冰山-Oracle开发艺术》副主编。8年电信行业从业经验,从事系统开发与维护、业务架构...

丁俊
2016/09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Tomcat内存设置

第一步骤: 1、路径是Tomcat目录下的/bin/catalina.bat文件 打开catalina.bat文件 加入下面这句代码: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 2、路径是...

一梦心草
13分钟前
0
0
IDEA 及 Gradle 使用总结

IDEA 及 Gradle 使用总结 自动编译组件 目前Android开发的主流开发工具是 Eclipse 和 IDEA 目前主流的自动化打包工具时 ant,maven,gradle。 maven工具中有自己的依赖仓库维护,很多开源支持...

舒文joven
13分钟前
0
0
lombok 引入后,测试类始终找不到get,set方法。

开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以...

Kidult
15分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
23分钟前
1
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
25分钟前
0
0
网络监控工具类

package com.guorentong.learn.organ.utils;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManage......

王先森oO
25分钟前
0
0
命令

sudo nginx -s reload 重启nginx sudo lsof -i -P | grep -i "listen" 查看端口占用

那个猴子
29分钟前
0
0
用scrapy-redis爬去新浪-以及把数据存储到

需求:爬取新浪网导航页(http://news.sina.com.cn/guide/)所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。 准备工作: a.安装redis(windows或者linux) b.安装Redis Des...

丁典
29分钟前
0
0
PHP常用函数篇

1.为什么要使用函数? 除了内建的PHP函数,我们可以创建我们自己的函数。 函数是可以在程序中重复使用的语句块。 使代码逻辑更清晰 避免过多的全局变量 封装后避免相同逻辑重复代码,只需调用...

天地有涯风有信_大海无量不见人
30分钟前
0
0
对List分组

在日常工作中会遇到这样的情景,我们需要对List按照List中对象的一个值进行分组。比如一个Human的List,我们要根据性别分组,传统的方法是做双层循环,逐个对比,今天我要介绍一种详单简单的...

珂jack
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部