• oracle SQL遞歸的使用詳解

     更新時間:2013年05月30日 10:10:05   作者:  
    本篇文章是對oracle SQL遞歸的使用進行了詳細的分析介紹,需要的朋友參考下
    oracle數據庫中如果需要使用SQL遞歸語句,應該怎么寫呢?下面就為您介紹一個oracle中使用SQL遞歸語句的例子,供您參考。
    例子:
    復制代碼 代碼如下:

    pid  id
      a   b  
      a   c    
      a   e  
      b   b1  
      b   b2  
      c   c1  
      e   e1  
      e   e3  
      d   d1  

    指定pid=a,選出  
      a   b  
      a   c    
      a   e  
      b   b1  
      b   b2  
      c   c1  
      e   e1  
      e   e3 
    SQL語句:select   parent,child   from   test   start   with   pid='a'  
    connect   by   prior   id=pid

    Oracle  SQL遞歸查詢語句:
    1、表機構
    復制代碼 代碼如下:

    SQL> desc comm_org_subjection
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------
     ORG_SUBJECTION_ID                         NOT NULL VARCHAR2(32)   子鍵
     ORG_ID                                    NOT NULL VARCHAR2(32)
     FATHER_ORG_ID                             NOT NULL VARCHAR2(32)   父鍵
     LOCKED_IF                                 NOT NULL VARCHAR2(1)
     START_DATE                                NOT NULL DATE
     END_DATE                                           DATE
     EDITION_NAMEPLATE                                  NUMBER(8)
     CODE_AFFORD_IF                                     VARCHAR2(1)
     CODE_AFFORD_ORG_ID                        NOT NULL VARCHAR2(32)
     CODING_SHOW_ID                                     NUMBER(8)
     BSFLAG                                             VARCHAR2(1)
     MODIFI_DATE                                        DATE
     CREATOR_ID                                         VARCHAR2(32)
     CREATE_DATE                                        DATE
     CREATOR                                            VARCHAR2(35)

    2、遞歸查找父結點 org_id為C6000000000001下的所有子結點:
    復制代碼 代碼如下:

    select * from comm_org_subjection a
    start with a.org_id='C6000000000001'
    connect by prior a.org_subjection_id=a.father_org_id

    3、遞歸查找子結點 org_id為C6000000000001下的所有父結點:
    復制代碼 代碼如下:

    select org_id from comm_org_subjection a
    start with a.org_id='C6000000000001'
    connect by prior a.father_org_id=a.org_subjection_id

    相關文章

    最新評論

    美丽人妻被按摩中出中文字幕