Oracle 递归查询SQL

这两天项目上线前,又过了一遍代码,感觉有条SQL逻辑有问题,就拿出来分析了下,果然有问题,然后用到了递归查询,就记录下。

基本结构

select * from table_name
start with id = '' 
connect by prior id = preid

本条数据的id是下一条数据的preid,向下遍历
其中,id可以用关键字in
prior关键字在 = 前面和后面的结果不同。

select j.userid, j.username, j.usercode
  from XT_USER j, XT_USERROLE U
 where J.USERID = U.USERID
   AND U.ROLEID IN ('D5FCE584', 'DBC71B7B')
   and j.deptid in
       (select distinct o.organiseid
          from xt_organise o
         start with o.organiseid in
                    (select distinct z.zzid
                       from zldt_jf z
                      where FLOOR(TO_DATE(Z.JZ_DAY, 'YYYY-MM-DD') - SYSDATE) = 7)
        connect by prior o.organiseid = o.preorganiseid)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值