ORALCE SQL 遍歷樹

欄目表  t_fw_channel ,字段:ID,NAME,PARENT_ID,LEVEL_ID


--根據ID 獲取欄目路徑:

select substr(SYS_CONNECT_BY_PATH(name,'>'),2) PATH  
from t_fw_channel c where is_valid = 1 
start with id = 4 
connect by prior c.parent_id = c.id 


--根據字段最大值 進行累計 每次+100

select nvl(max(order_id),'0')+100 from t_fw_channel


--遍歷完整樹:

select *
  from t_fw_channel a
 where is_valid = 1  --判斷是否可用
   and audit_status = 1  --判斷狀態是否通過
 start with a.parent_id = 0
connect by prior a.id = a.parent_id order siblings by order_id asc;


--根據3級欄目ID  遍歷樹(向上遍歷):

select *
  from (select distinct *
          from (select *
                  from t_fw_channel a
                 where is_valid = 1
                   and audit_status = 1
                 start with a.id in (select ID from t_fw_channel  where  LEVEL_ID=3)
                connect by prior a.parent_id = a.id))
 start with parent_id = 0 connect by prior id = parent_id
 order siblings by order_id asc


--根據1級欄目ID 遍歷樹(只能頭部向下遍歷):

 select *
  from (select distinct *
          from (select *
                  from t_fw_channel a
                 where is_valid = 1
                   and audit_status = 1
                 start with a.id  in (select ID from t_fw_channel  where  LEVEL_ID=1)
                connect by prior  a.id=a.parent_id))
 start with parent_id = 0 connect by prior id = parent_id
 order siblings by order_id asc


發佈了13 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章