zoukankan      html  css  js  c++  java
  • oracle中使用SQL递归语句的例子

    转载自:http://database.51cto.com/art/201009/227393.htm

    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

  • 相关阅读:
    常用函数
    PostgreSql那点事(文件读取写入、命令执行的办法)
    如何检测Windows中的横向渗透攻击
    小米笔记本pro版bios经常找不到硬盘
    grunt教程
    nodejs廖雪峰大神教程
    ClickOnce是什么?如何使用?
    asp.net中的ORA-12154: TNS: 无法解析指定的连接标识符
    未能加载文件或程序集 ICSharpCode.SharpZipLib
    PL/SQL 循环
  • 原文地址:https://www.cnblogs.com/wangn/p/3240736.html
Copyright © 2011-2022 走看看