层次查询START WITH... CONNECT BY PRIOR、LEVEL伪列

一、层次查询 START WITH... CONNECT BY PRIOR

START WITH 指定层次的根行(开始的地方)。 这个子句对于一个正确的分级查询是必须的。

CONNECT BY PRIOR 指定列, 其中存在父与子行的关系。对于分级查询该子句是必须的。PRIOR指上一条记录的意思

 

CONNECT BY PRIOR COLUMN1 = COLUMN2

遍历方向: 从顶向下 COLUMN1 = PARENT KEY, COLUMN2 = CHILD KEY

               从底向上 COLUMN1 = CHILD KEY,  COLUMN2 = PARENT KEY

 

例子:

从顶向下:

SELECT LAST_NAME||'  REPORTS TO  '||PRIOR LAST_NAME'WALK TOP DOWN'

FROM EMPLOYEES

START WITH LAST_NAME = 'KING'

CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID ;

从低向上:

SELECT EMPLOYEE_ID, LAST_NAME, JOB_ID, MANAGER_ID

FROM EMPLOYEES

START WITH EMPLOYEE_ID = 101

CONNECT BY PRIOR MANAGER_ID = EMPLOYEE_ID ;

 

二、LEVEL 伪列

可以用LEVEL和LPAD格式化分级报告

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值