zoukankan      html  css  js  c++  java
  • ORACLE 查询上级下级间关系

    WITH TMP AS
           (SELECT TMP.ORG_NUM AS INST_ID,
                   TMP.UP_ORG_NUM AS PARENT_INST_ID,
                   LTRIM(SYS_CONNECT_BY_PATH(TMP.ORG_NUM, ','), ',') AS CODE_PATH
            FROM (SELECT A.ORG_NUM,
                         CASE WHEN A.ORG_TYP = '0' THEN NULL ELSE A.UP_ORG_NUM END AS UP_ORG_NUM,
                         A.ORG_TYP
                    FROM TESTNOW A
                   WHERE A.DATA_DATE = 20180430) TMP
            START WITH ORG_TYP = '0'
            CONNECT BY PRIOR TMP.ORG_NUM = TMP.UP_ORG_NUM
            UNION ALL
            SELECT TMP.ORG_NUM AS INST_ID,
                   TMP.UP_ORG_NUM AS PARENT_INST_ID,
                   LTRIM(SYS_CONNECT_BY_PATH(TMP.ORG_NUM, ','), ',') AS CODE_PATH
            FROM (SELECT A.ORG_NUM,
                         CASE WHEN A.ORG_TYP = '9' THEN NULL ELSE A.UP_ORG_NUM END AS UP_ORG_NUM,
                         A.ORG_TYP
                    FROM TESTNOW A
                   WHERE A.DATA_DATE = 20180430) TMP
            START WITH ORG_TYP = '9'
            CONNECT BY PRIOR TMP.ORG_NUM = TMP.UP_ORG_NUM) 
          SELECT SUBSTR(',' || A.CODE_PATH || ',', INSTR(',' || A.CODE_PATH, ',', 1, B.RN) + 1, INSTR(A.CODE_PATH || ',', ',', 1, B.RN) - INSTR(',' || A.CODE_PATH, ',', 1, B.RN)) AS INST_ID,
                 A.INST_ID AS SUB_INST_ID,
                 CASE
                   WHEN B.RN = 1 THEN
                    'root'
                   ELSE
                    SUBSTR(',' || A.CODE_PATH || ',', INSTR(',' || A.CODE_PATH, ',', 1, B.RN - 1) + 1, INSTR(A.CODE_PATH || ',', ',', 1, B.RN - 1) - INSTR(',' || A.CODE_PATH, ',', 1, B.RN - 1))
                 END UP_INST_ID,
                 CODE_PATH
          FROM TMP A,
               (SELECT ROWNUM RN
                FROM DUAL
                CONNECT BY ROWNUM < 10) B
          WHERE LENGTH(A.CODE_PATH) - LENGTH(REPLACE(A.CODE_PATH, ',')) + 1 >= B.RN; 



    select connect_by_root t.bank_org_code hq_bank_org_cd,
    connect_by_root t.branch_cd hq_branch_cd,
    t.branch_cd,
    t.busi_dt,
    t.org_type_cd,
    t.org_type_name,
    t.branch_cd_org
    from TESTDWH t
    where t.busi_dt = date '2018-04-30'
    start with org_type_cd = '0'
    connect by nocycle prior t.branch_cd_org = t.branch_cd_up
    union all
    select connect_by_root t2.bank_org_code hq_bank_org_cd,
    connect_by_root t2.branch_cd hq_branch_cd,
    t2.branch_cd,
    t2.busi_dt,
    t2.org_type_cd,
    t2.org_type_name,
    t2.branch_cd_org
    from TESTDWH t2
    where t2.busi_dt = date '2018-04-30'
    start with org_type_cd = '9'
    connect by nocycle prior t2.branch_cd_org = t2.branch_cd_up;






    All for u
  • 相关阅读:
    (转+原)android获取系统时间
    (转+原)VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
    android的reference table的问题
    (原+转)Eclipse中Android调用OpenCv
    JAVA IO 字符流 FileReader FileWriter
    JAVA IO
    JAVA FIle类
    JAVA 泛型
    JAVA Collection工具类 Collections
    JAVA Map子接口之 HashMap
  • 原文地址:https://www.cnblogs.com/ayumie/p/9922853.html
Copyright © 2011-2022 走看看