gbk

          Oracle 10g 中的遞歸查詢(樹型查詢)

          Oracle 10g 中的遞歸查詢(樹型查詢)

           
          一、樹型表結構:
          節點ID  上級ID  節點名稱
          二、公式: 
          select 節點ID,節點名稱,level
          from 表
          connect 
          by prior 節點ID=上級節點ID
          start 
          with 上級節點ID=節點值

          說明:
          1、常見的樹形結構為公司組織機構、地區……
          2、求節點ID以上的結構,或以上的結構,將“節點ID=上級節點ID”左右順序換一下即可。
          3、Level為Oracle的特殊字段,表示“層”的意思。當前節點ID的下一層節點為“1”。

          測試SQL: 1,建立表結構

          create table Dept(
          DepartNO  
          varchar2(10),
          DepartName  
          varchar2(20),
          TopNo    
          varchar2(10)
          );

           插入數據: 

          insert into Dept values('001',' 董事會','0');
          commit;
          insert into Dept values('002','總裁辦 ','001');
          commit;
          insert into Dept values('003','財務部 ','001');
          commit;
          insert into Dept values('004','市場部 ','002');
          commit;
          insert into Dept values('005','公關部 ','002');
          commit;
          insert into Dept values('006','銷售部 ','002');
          commit;
          insert into Dept values('007','分銷處 ','006');
          commit;
          insert into Dept values('008','業務拓展處','004');
          commit;
          insert into Dept values('009','銷售科','007');
          commit;

           1,向前查 (從查詢本身一直到最上面的機構)

          比如:
          select distinct departno,departname,level
          from dept
          connect 
          by prior topno=departno
          start 
          with
          departno
          ='005';

            2,向后查:(從查詢本身一直到最下面的機構)

          select distinct departno,departname,level
          from dept
          connect 
          by prior departno=topno
          start 
          with
          topno
          ='001';

            COND2是連接條件,其中用PRIOR表示上一條記錄,比如 CONNECT BY PRIOR ID=PRAENTID就是說上一條記錄的ID(比如根記錄)是(下一條)本條記錄的PRAENTID,即本記錄的父親是上一條記錄。

          posted on 2009-04-21 15:30 百科 閱讀(184) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 泸州市| 铅山县| 灵寿县| 南华县| 荥经县| 大城县| 阜新市| 泸西县| 即墨市| 资兴市| 张北县| 安多县| 南京市| 西华县| 黑水县| 五指山市| 武清区| 紫阳县| 天峻县| 黔江区| 亚东县| 陆河县| 武陟县| 鄂托克旗| 志丹县| 正阳县| 积石山| 财经| 辰溪县| 平山县| 郸城县| 伽师县| 廉江市| 嘉义县| 武平县| 武陟县| 从江县| 宜川县| 神池县| 偃师市| 贵州省|