站長資訊網
        最全最豐富的資訊網站

        一文解析ORACLE樹結構查詢

        本篇文章給大家帶來了關于Oracle的相關知識,主要介紹了一文解析ORACLE樹結構查詢,文章圍繞主題展開詳細的內容戒殺,下面一起來看一下,希望對大家有幫助。

        一文解析ORACLE樹結構查詢

        推薦教程:《Oracle視頻教程》

        我們在日常程序設計中,經常會遇到樹狀結構的表示,例如組織機構、行政區劃等等。這些在數據庫中往往通過一張表進行展示。這里我們以一張簡單的行政區劃表為例進行展示,在實際使用過程中,可以為其添加其他描述字段以及層級。

        一文解析ORACLE樹結構查詢

        表中通過ID和PID關聯,實現樹狀結構的存儲。建表以及數據語句如下:

        -- Create table create table TREETEST (   id   NVARCHAR2(50),   pid  NVARCHAR2(50),   name NVARCHAR2(50) )
        insert into TREETEST (ID, PID, NAME) values ('1', null, '山東省'); insert into TREETEST (ID, PID, NAME) values ('2', '1', '青島市'); insert into TREETEST (ID, PID, NAME) values ('3', '1', '煙臺市'); insert into TREETEST (ID, PID, NAME) values ('4', null, '河南省'); insert into TREETEST (ID, PID, NAME) values ('5', null, '河北省'); insert into TREETEST (ID, PID, NAME) values ('6', '2', '市南區'); insert into TREETEST (ID, PID, NAME) values ('7', '2', '市北區'); insert into TREETEST (ID, PID, NAME) values ('8', '2', '即墨市');

        那對于樹狀結構如何查詢呢?Oracle提供遞歸查詢的方式進行查詢,基本語法如下:

        SELECT [Column]…..   FEOM [Table]   WHERE Conditional1   START WITH Conditional2   CONNECT BY PRIOR Conditional3   ORDER BY [Column]

        說明:

        • 條件1—過濾條件,對全部返回的記錄進行過濾。
        • 條件2—根節點的限定條件,固然也可以放寬權限得到多個根節點,也就是獲取多個樹
        • 條件3—鏈接條件,目的就是給出父子之間的關系是什么,根據這個關系進行遞歸查詢(在上述表中就是ID=PID)
        • 排序—對全部返回記錄進行排序

        下面我們結合具體實例來看:

        1、查詢山東省下面的所有子節點

        SELECT *   FROM TREETEST t  START WITH t.PID=1 CONNECT BY PRIOR t.ID = t.PID

        其中ID為1的為山東省節點,查詢結果如下:

        一文解析ORACLE樹結構查詢

        2、查詢青島市的下一級子節點(注意和上面區分,全部子節點和下一級子節點)

        一文解析ORACLE樹結構查詢

        3、如果需要獲取將山東省青島市等連接起來顯示,可以使用SYS_CONNECT_BY_PATH來實現

        SELECT t.ID, SYS_CONNECT_BY_PATH(t.NAME, '') AS INDU_NAME   FROM TREETEST t  START WITH t.PID IS NULL CONNECT BY PRIOR t.ID = t.PID

        查詢結果如下:

        一文解析ORACLE樹結構查詢

        4、同理,也可以從下往上進行查詢

        SELECT *   FROM TREETEST t  START WITH t.ID=8 CONNECT BY t.ID = PRIOR t.PID

        一文解析ORACLE樹結構查詢

        推薦教程:《Oracle視頻教程》

        前端(vue)入門到精通課程:立即學習

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲欧美日韩国产一区二区三区精品| 午夜精品射精入后重之免费观看 | 99久久99久久精品国产片| 亚洲精品国产字幕久久不卡| 国产精品伦理久久久久久| 91精品国产乱码久久久久久| 亚洲精品你懂的在线观看| 精品视频在线观看你懂的一区 | 精品久久久久久久| 日本aⅴ精品中文字幕| 亚洲午夜成人精品电影在线观看| 国产精品自产拍在线18禁| 日韩一级精品视频在线观看| 国产精品莉莉欧美自在线线| 国产午夜无码精品免费看动漫| 熟妇无码乱子成人精品| 亚洲精品午夜无码电影网| 中国国产精品| 亚洲国产精品无码久久久秋霞2 | 久久久久无码精品国产app| 99久久精品无码一区二区毛片| 国产精品成人在线| 国产精品免费无遮挡无码永久视频 | 国产精品成人一区二区| 欧美精品香蕉在线观看网| 国产精品福利一区二区久久| 久久丫精品国产亚洲av不卡| 亚洲精品免费视频| 精品午夜久久福利大片| 2020国产精品| 国产精品成人va| 国产一精品一av一免费爽爽| 国产一成人精品福利网站| 国产亚洲综合成人91精品| 精品亚洲综合在线第一区| 欧美高清在线精品一区| 永久免费精品视频| 国产成人精品免高潮在线观看| 国产精品久久久久乳精品爆 | 久久久精品国产sm调教网站| 久久精品亚洲精品国产色婷|