天天看點

oracle樹形結構周遊sys_connect_by_path

表結構:表名 tableA 字段:id,parent_id ,title

需求:查詢出樹形結構存在資料庫中的資料

SELECT

            sys_connect_by_path(

                title,

                '+'

            ) title,

            id

        FROM

            tableA

        WHERE

            visible = '1' START WITH id ='0001' CONNECT BY parent_id = PRIOR id

 文法解釋:START WITH:以……開始

CONNECT BY:用……連接配接

prior:這棵樹中年級最大的是誰

  sys_connect_by_path:将樹形查詢到的指定字段title以+号連接配接(sys_connect_by_path函數就是從start with開始的地方開始周遊,并記下其周遊到的節點),也就是說這個文法有記憶功能,第一次title是小頭爸爸,第二次是大頭兒子,那麼第二個資料結果就是【+小頭爸爸+大頭兒子】

翻譯過來就是:查詢以id='0001'為起點,parent_id等于‘0001’的全部資料,并且title用+号分割。

案例結果示意圖:

oracle樹形結構周遊sys_connect_by_path

 全文:相當于小頭爸爸,id='0001'的父節點

S店:大頭兒子,也就是葉子節點。

具體詳細流程可以參考:https://mp.csdn.net/postedit/103250347

(這個連結也是我參考過的連結)