亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle如何實現層次化查詢

發布時間:2021-11-10 14:45:51 來源:億速云 閱讀:219 作者:小新 欄目:關系型數據庫

小編給大家分享一下Oracle如何實現層次化查詢,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Oracle層次化查詢

(1) 樹狀模型

假如有一個市場模型,其中一級市場是中國,二級市場是省份,三級市場是各個省下面的市,四級市場是各個市下面的縣。那么可以創建表market

create table market(market_id number(2), market_name varchar2(10), parent_market_id number(2));

insert all

into market values(1, 'China', 0)

into market values(2, 'Shan Xi', 1)

into market values(3, 'Shan Dong', 1)

into market values(4, 'Fu Jian', 1)

into market values(5, 'Tai Yuan', 2)

into market values(6, 'Yang Quan', 2)

into market values(7, 'Qi Zhou', 2)

into market values(8, 'Qing Dao', 3)

into market values(9, 'Ji Nan', 3)

into market values(10, 'Yan Tai', 3)

into market values(11, 'Xia Men', 4)

into market values(12, 'Fu Zhou', 4)

into market values(13, 'Quan Zhou', 4)

into market values(14, 'Gu Jiao', 5)

into market values(15, 'Yang Qu', 5)

into market values(16, 'Qing Xu', 5)

select * from dual;

(2) 層次化查詢

select market_id, market_name

from market

start with market_name = 'Shan Xi'

connect by prior market_id = parent_market_id;

MARKET_ID MARKET_NAME

---------- ------------------------------

2 Shan Xi

5 Tai Yuan

14 Gu Jiao

15 Yang Qu

16 Qing Xu

6 Yang Quan

7 Qi Zhou

7 rows selected.

這里的搜索規則為:從'Shan Xi'節點開始搜索、前一個節點的market_id等于下一個節點的parent_markket_id

(3) 相關函數

顯示搜索路徑的函數為

sys_connect_by_path(列名,分隔符)

示例:

select market_id, market_name, sys_connect_by_path(market_name, '/') as market_path

from market

start with market_name = 'Gu Jiao'

connect by prior parent_market_id = market_id;

MARKET_ID MARKET_NAM MARKET_PATH

---------- ---------- ----------------------------------------

14 Gu Jiao    /Gu Jiao

5 Tai Yuan   /Gu Jiao/Tai Yuan

2 Shan Xi    /Gu Jiao/Tai Yuan/Shan Xi

1 China      /Gu Jiao/Tai Yuan/Shan Xi/China

這里可以利用max()函數來獲得完整的路徑:

select max(sys_connect_by_path(market_name, '/')) market_path

from market

start with market_name = 'Gu Jiao'

connect by prior parent_market_id = market_id;

MARKET_PATH

----------------------------------------

以上是“Oracle如何實現層次化查詢”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海南省| 英吉沙县| 子洲县| 衡山县| 巨野县| 牡丹江市| 崇仁县| 苍梧县| 烟台市| 大厂| 泸州市| 金华市| 白银市| 乌苏市| 上栗县| 丹凤县| 开鲁县| 常德市| 宝鸡市| 锡林浩特市| 榆社县| 罗山县| 新田县| 蒙自县| 汉沽区| 探索| 河津市| 扎鲁特旗| 石台县| 徐汇区| 体育| 福泉市| 营山县| 吉水县| 诏安县| 江阴市| 游戏| 康马县| 建瓯市| 宣武区| 蕉岭县|