作為一名開發和管理兼修的工程師,有時候會遇到編寫複雜的sql ,此時就會查詢資料,事後又很快會忘記。記得自己每次編寫層次結構的時候都會找資料,到底誰是父親,誰是孩子,prior放在那邊代表什麼意思。
今天主要把層次的語法進行分析,並用自己的理解記住自頂向下和自底向上。
基本語法很簡單:select ... from table where 條件
connect by prior column1=column2
start with
order [siblings] by;
1、where 條件很好理解,就是在整個查詢結果的基礎上,進行過濾;並非過濾之後再查詢。
2、start with 也很好理解,表示從什麼開始,通常表示指定乙個樹的根節點或者乙個樹的葉子節點;這取決於你是自頂向下還是自底向上。
3、order [siblings] by主要是排序,可以按照各種條件進行排序,siblings定義了同乙個父親下的兄弟之間的排序。
4、connect by 這是每次容易弄混淆的:
舉例 prior child_id = parent_id <=> parent_id=prior child_id
prior parent_id=child_id<=> child_id=prior parent_id
等式兩邊互換位置是等價的。
當prior放在那一邊時,我們可以翻譯為找什麼;比如第乙個prior child_id 可以翻譯為找孩子;prior parent_id 翻譯為找父親;這樣找孩子的話,可以就是自頂向下了,找父親就是自底向上。
有個這個理解,寫層次查詢時,就知道如何擺放prior位置了。
5、還有乙個偽列level,代表著層次。
url:
oracle 層次查詢
1 簡介 oracle層次化查詢是oracle特有的功能實現,主要用於返回乙個資料集,這個資料集存在樹的關係 資料集中存在乙個pid記錄著當前資料集某一條記錄的id 2 層次化查詢主要包含兩個子句,乙個start with另乙個是connect by。start with 這個子句一般用於指定層次化...
oracle層次查詢
層次查詢 hierarial retrival 1.層次查詢基本概念 層次查詢是描敘乙個樹狀結構,我們可以通過層次查詢來控制自上而下,或者自下而上的查詢樹狀資料。並且還可以確定查詢起始點 start with確定開始點 connect by確定遍歷的方向。2.層次查詢語法 select level ...
oracle的層次查詢
語法 select 列名次from 表名次 where 條件 start with 條件connect by prior 當前表這段 級聯表字段。解釋 where 條件為可選,start with 條件connect by prior 語句完成遞迴查詢,形成一棵樹形結構。start with 表示開...