第29章 层次查询

第29章 层次查询

查询员工上下级关系

查看员工上级领导
select empno,ename,mgr from emp start with empno=7839 connect by prior mgr=empno;

查看领导的下属
select empno,ename,mgr from emp start with empno=7839 connect by prior empno=mgr;

分级查看,加入位列level
select empno,ename,mgr,level from emp start with empno=7839 connect by prior mgr=empno;

select empno,ename,mgr,level from emp start with empno=7839 connect by prior empno=mgr;

层次关系美化

第一种方法

select lpad(ename,(length(ename)+level*2)-2,‘ ‘) ename from emp start with empno=7839 connect by prior empno=mgr;

SQL> select lpad(ename,(length(ename)+level*2)-2,‘ ‘) ename from emp start with empno=7839 connect by prior empno=mgr;

ENAME
--------------------------------------------------------------------------------
KING
JONES
SCOTT
ADAMS
FORD
SMITH
BLAKE
ALLEN
WARD
MARTIN
TURNER

ENAME
--------------------------------------------------------------------------------
JAMES
CLARK
MILLER

14 rows selected.

第二种方法,使用系统函数sys_connect_by_path(colname,‘ ‘)查看

select sys_connect_by_path(ename,‘/‘) ename from emp start with empno=7839 connect by prior empno=mgr;

SQL> select sys_connect_by_path(ename,‘/‘) ename from emp start with empno=7839 connect by prior empno=mgr;

ENAME
--------------------------------------------------------------------------------
/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

ENAME
--------------------------------------------------------------------------------
/KING/BLAKE/JAMES
/KING/CLARK
/KING/CLARK/MILLER

14 rows selected.

原文地址:https://www.cnblogs.com/tudousix/p/9418998.html

时间: 2024-08-30 13:32:39

第29章 层次查询的相关文章

oracle层次查询

1 定义: 层次查询使用树的遍历,走遍含树形结构的数据集合,来获取树的层次关系报表的方法 树形结构的父子关系,你可以控制: ① 遍历树的方向,是自上而下,还是自下而上 ②  确定层次的开始点(root)的位置 层次查询语句正是从这两个方面来确定的,start with确定开始点,connect by确定遍历的方向  www.2cto.com 2 语法: 注释: ① level是伪列,表示等级 ② from后面只能是一个表或视图,对于from是视图的,那么这个view不能包含join ③ Wher

mySQL教程 第4章 数据查询

第4章 数据查询 mySQL运算符 这些运算符在SQL查询中用得到. 算数运算符 + 加 - 减 * 乘 / DIV 除 % MOD 取余数 比较运算符 = 等于 <> != 不等于 < <= > >= Between 指定范围 In 存在于集合 Is null 为NULL Is not null 不为空 Like 通配符 Regexp rlike 正则表达式 比如 比较运算符,返回的结果 真为1,假为0 运算符优先级 最高-----------------------

第29章 CSS伸缩弹性布局(上)

第 29章 CSS3弹性伸缩布局[上]学习要点:1.布局简介2.旧版本 本章主要探讨 HTML5中 CSS3提供的用来实现未来响应式弹性伸缩布局方案,这里做一个初步的了解.一.布局简介CSS3提供一种崭新的布局方式:Flexbox布局,即弹性伸缩布局模型(Flexible Box).用来提供一个更加有效的方式实现响应式布局.但是用于这个布局方式还处于 W3C的草案阶段,并且它还分为旧版本.新版本以及混合过渡版本三种不同的编码方式.在发展中,可能还有各种改动,浏览器的兼容性还存在问题.所以,本节课

Oracle分区表的层次查询如何才能用到分区?

最近在调优分区表的层次查询时,发现用不到分区,做了一个实验,发现还是可以用的到的,只是写法上有些要求. drop table test; create table test ( id  number primary key, parent_id number, name varchar2(20), code varchar2(4) ) partition by list(code) ( partition p1 values('0301'), partition p2 values('0302'

java MySQL数据库编程 第四章 高级查询(二)

第四章 高级查询(二) (1)通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查.子查询可以出现在表达式出现的如何位置 (2)子查询语句可以嵌套在SQL语句中任何表达式出现的位置. 一.EXISTS子查询 1.使用EXISTS语句判断该数据库对象是否存在: DROP TABLE IF EXISTS temp; 2. EXISTS作为WHERE语句的子查询: SELECT .....FROM 表名 WHERE EXISTS(子查询); 3. EXISTS关键字后面的参数是一个任

Oracle层次查询和分析函数在号段选取中的应用

转自:http://www.itpub.net/thread-719692-1-1.html 摘要一组连续的数,去掉中间一些数,如何求出剩下的数的区间(即号段)?知道号段的起止,如何求出该号段内所有的数?知道一个大的号段范围和已经取过的号段,如何求出可用的号段?利用Oracle提供的强大的查询功能以及分析函数,我们可以很轻松的解决上述问题. 关键词:号段选取.连续数.断点.层次查询.分析函数.connect by.rownum.level.lead.lag 1.        问题的提出在实际工

MySQL必知应会-第17章-组合查询

第17章-组合查询 本章讲述如何利用UNION操作符将多条SELECT语句组合成一个结果集. 17.1 组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句. MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并( union) 或复合查询(compound query).有两种基本情况,其中需要使用组合查询:? 在单个查询中从不同的表返回类似结构的数据:? 对单个表执行多个查询,按单个查询返回数据. 组合查询和多

PL/SQL第三章 基础查询语句

1 --查询所有列 select * from tab_name|view_name; 2 SELECT * FROM emp; 3 SELECT * FROM (SELECT * FROM emp); 4 --查询特定列 5 SELECT * FROM emp WHERE emp.ename='SMITH'; 6 -- 注意PL/SQL Developer不支持会话控制语句 7 --以特殊格式显示日期列:数据类型是date或timestamp,默认显示格式:DD-Mon-RR 8 ALTER

mysql 查询性能优化第一章 为什么查询速度会慢

一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清楚一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要优化起子任务,要么消除其中一些子任务,要么减少子任务的执行次数,Mysql在执行查询的时候有哪些子任务,哪些子任务运行的速度很慢?这里还不好给出完 整的列表.一般来说,查询的生命周期大致可以按照顺序爱看:从客户端->服务器->然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中执行