• oracle递归查询(查询条件ID下得所有子集)


    一、CREATE TABLE TBL_TEST
      (
      ID    NUMBER,
      NAME  VARCHAR2(100 BYTE),
      PID   NUMBER                                  DEFAULT 0
      )
      INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
      INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
      INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
      INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
      INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
    二、格式
            Select * from …. Where [结果过滤条件语句]
      Start with  [and起始条件过滤语句]
      Connect by prior [and中间记录过滤条件语句]
    三、查找所有下级
            select * from tbl_test start with id=1 connect by prior id=pid
      注意:此sql能查找id=1的数据的所有下级,写sql语句时要注意,因为是从id开始查找下级,所以connect by prior 子句的条件是         id=pid
    四、查找所有上级
           select * from tbl_test start with id=5 connect by prior pid=id
      因为是从id开始查找上级,所以connect by prior 子句的条件是pid=d

    ------------------------------------------------

    例子: 物资大类

    select *
      from ep_goods_cate epgc
     start with epgc.epgc_id in (3,12,115,6)
    connect by prior epgc.epgc_id = epgc.epgc_parent_id

  • 相关阅读:
    Java自学-JDBC execute与executeUpdate的区别
    POI 操作Word, 向Word中写入文本,图片.
    C++ 设计模式 4:行为型模式
    C++ 设计模式 3:结构型模式
    C++ 设计模式 2:创建型模式
    C++ 设计模式 1:概述
    C++ 数据结构 4:排序
    C++ 数据结构 3:树和二叉树
    C++ 数据结构 2:栈和队列
    C++ 数据结构 1:线性表
  • 原文地址:https://www.cnblogs.com/wushuishui/p/5337287.html
Copyright © 2020-2023  润新知