您好,登錄后才能下訂單哦!
oracle的start with connect by prior是根據條件遞歸查詢"樹",分為四種使用情況:
第一種:start with 子節點ID='...' connect by prior 子節點ID = 父節點ID
1select * from mdm_organization o start with o.org_code='10000008' connect by prior o.org_code=o.org_parent_code
按照條件org_code='10000008',對'10000008'(包括自己)及其子節點進行遞歸查詢,結果如下
查詢結果自己所有的后代節點(包括自己)。
第二種:start with 子節點ID='...' connect by 子節點ID = prior 父節點ID
1select * from mdm_organization o start with o.org_code='10000008' connect by o.org_code=prior o.org_parent_code
按照條件org_code='10000008',對'10000008'(包括自己)及其父節點進行遞歸查詢,結果如下
查詢結果自己所有的前代節點(包括自己)。
第三種:start with 父節點ID='...' connect by prior 子節點ID = 父節點ID
1select * from mdm_organization o start with o.org_parent_code='10000008' connect by prior o.org_code=o.org_parent_code
按照條件org_parent_code='10000008',對'10000008'(不包括自己)子節點進行遞歸查詢,結果如下
查詢結果自己所有的后代節點(不包括自己)。
第四種:start with 父節點ID='...' connect by 子節點ID = prior 父節點ID
1select * from mdm_organization o start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code
按照條件org_parent_code='10000008',對'10000008'(包括自己)的第一代孩子們及其父節點進行遞歸查詢,結果如下
查詢結果自己的第一代后節點和所有的前代節點(包括自己)。
如果有where 條件,如下
select * from mdm_organization o where 條件 start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code
執行順序為先執行start with connect by prior,然后再按照where條件進行過濾。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。