Oracle再帰クエリSQL

プロジェクトが稼働する2日前に、もう一度コードを調べたところ、SQLロジックに問題があると感じたので、それを取り出して分析したところ、問題が発生した後、再帰クエリを使用して記録されました。

基本構造

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

このデータIDは、次のデータのpreidです。
トラバースするには、キーワードinidに使用できます=の前後の前のキーワードの結果は異なります。

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)


おすすめ

転載: blog.csdn.net/A_Intelligence/article/details/86085080