国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

如何在Oracle層次查詢中給SIBLINGS排序

瀏覽:106日期:2023-11-28 08:24:15
Oracle SELECT語句中的START WITH和CONNECT BY子句自動阻斷一個層次。缺少這項特性,就需要一個復雜的自聯接來確定行之間的邏輯聯系。START WITH子句指定被認為是層次起點,或“根”的一行或幾行。然后CONNECT BY PRIOR子句指明哪些行彼此關聯。

例如,列表A中的查詢從Oracle HR樣本模式的EMPLOYEES表中生成一個“Reports To”列表。

column 'Reports To' format a30set pagesize 9999SELECT LPAD(' ', 2*(LEVEL-1))||last_name 'Reports To', employee_idFROM employeesSTART WITH employee_id IN (101, 102)CONNECT BY PRIOR employee_id = manager_id/

列表A

LEVEL偽列表明報告當前嵌套的深度,這里我使用LPAD雇員姓名對它們進行縮排。START WITH條件指出只有雇員101和102被認為是起點。然后CONNECT BY PRIOR子句將一行中的employee_id列與另一行的manager_id列連接起來,指出誰向誰報告。

如果你在HR模式中運行這個查詢,你會注意到某個經理列表中的姓沒有分類,它們以Oracle在處理層次時遇到它們的順序排列。

如果你希望下屬以字母順序排列,你可以嘗試對原始的last_name列使用ORDER BY。但是,這樣會破壞層次,把它變回一個單調的姓名列表。

你還可以首先對偽列LEVEL使用ORDER BY,它說明某個特殊行在層次中的深度。這同樣也會破壞層次,首先會列出所有的經理,然后是向他們報告的雇員。

在Oracle 10g(兩個版本)中,現在很容易實現這一點:你可以使用新的SIBLINGS關鍵字建立正確的順序。其語法如下:

ORDER SIBLINGS BY <expression>

因此在查詢結尾處增加下面這個子句:

ORDER SIBLINGS BY last_name

將會保護層次,并在每個等級中以字母順序排列雇員的姓。注意最初的last_name用作“Reports To”的別名。“Reports To”中的額外空間會影響排序,因此必須使用最初的last_name。列表B中是增加ORDER SIBLINGS BY前后的輸出結果。

SQL> @siblings_without_orderbyReports To EMPLOYEE_ID------------------------------ -----------Kochhar101Whalen 200Mavris 203Baer 204Higgins205Gietz206Greenberg 108Faviet 109Chen 110Sciarra111Urman112Popp 113De Haan102Hunold 103Ernst104Austin 105Pataballa 106Lorentz10718 rows selected.SQL> @siblings_with_orderbyReports To EMPLOYEE_ID------------------------------ -----------De Haan102Hunold 103Austin 105Ernst104Lorentz107Pataballa 106Kochhar101Baer 204Greenberg 108Chen 110Faviet 109Popp 113Sciarra111Urman112Higgins205Gietz206Mavris 203Whalen 20018 rows selected.SQL>

列表B

標簽: Oracle 數據庫
主站蜘蛛池模板: 亚洲免费高清 | 国美女福利视频午夜精品 | 加勒比久久综合 | 亚洲视频在线观看网站 | 中文字幕国产专区 | 天堂视频免费看 | 中文字幕精品一区二区2021年 | 国产成人偷拍 | 好看的看黄a大片爽爽影院 好男人天堂网 | 亚洲国产精品第一区二区 | 国产精品无码久久综合网 | 日韩一区二区在线观看 | 亚洲精品国产美女在线观看 | 和日本免费不卡在线v | a亚洲天堂 | 成人手机视频在线观看 | 欧美综合精品一区二区三区 | 9l国产精品久久久久麻豆 | 久久a 热6 | 日韩高清在线不卡 | 97免费视频免费视频 | 手机看片免费基地 | 欧美操人 | 中文字幕一区二区视频 | 日本欧美中文 | 亚洲一区 欧美 | 91国内精品久久久久免费影院 | 国产欧美日韩不卡一区二区三区 | 人人公开免费超级碰碰碰视频 | 久久毛片免费看一区二区三区 | 日本巨乳中文字幕 | 亚洲人成网国产最新在线 | 九色视频在线观看免费 | 欧美成人性色大片在线观看 | 国产福利一区二区三区 | 久久国产精品国产精品 | 亚洲欧美一区二区三区不卡 | 香港经典a毛片免费观看看 香港经典a毛片免费观看爽爽影院 | 亚洲韩国欧美一区二区三区 | 日韩激情中文字幕一区二区 | 免费国产一区二区三区 |