递归查询START WITH CONNECT BY PRIOR

START WITH CONNECT BY PRIOR这个语法主要用于查询数据包中的树型结构关系 在遍历树形结构的时候可以使用

------原始数据



语法-----

start with (从某个节点id开始)
connect by prior (字节点id和父节点pid直接的关系需要)

可以向上查询 可以向下查询

--例子1:
  -- empno 相当于id(父节点)---mgr 相当于pid(子节点)
select * from emp
start with empno=7369
connect by prior mgr  = empno

--- mgr (pid(子节点)) 与empno (id(父节点)) 谁在前或后 有区别
-- pid 在前 id 在后 想上查询   ID在前 pid在后 向下查询

-- 这个例子 - 首先找 7369 然后找到7369的上级 在向上找领导 找到最后没有上级的7839
-- empno=7839 后就只会找到一个 king 没有上级领导


--2: ID在前 pid在后 向下查询
select * from emp
start with empno=7839
connect by prior empno =mgr

3---多个节点 向上查询  
select * from emp
start with empno=7369  or  empno=7934
connect by prior mgr = empno

4-- 加上 过滤   
select * from emp
where empno <> 7782
start with empno=7369  or  empno=7934
connect by prior mgr = empno

5-- 加 排序
select * from emp
where empno <> 7782
start with empno=7369  or  empno=7934
connect by prior mgr = empno
order by sal desc



 select deptno,ename,sal,
      sum(sal) over (order by ename) ,
      sum(sal) over (),     
      1000*round(sal/sum(sal) over (),4)
      from emp
       where deptno in(10,20)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值