zoukankan      html  css  js  c++  java
  • db2层级查询

    CREATE VIEW v_orgtype99 as
    SELECT t1.SYS_ORG_TYPE_NAME top_name1,
    t2.SYS_ORG_TYPE_NAME top_name2,
    --若机构表第二层为空,算第一层的机构编码,依次类推。
    CASE WHEN o2.SYS_ORG_ID IS NULL THEN o1.SYS_ORG_FINANCIAL_CODE
    WHEN o3.SYS_ORG_ID IS NULL THEN o2.SYS_ORG_FINANCIAL_CODE
    WHEN o4.SYS_ORG_ID IS NULL THEN o3.SYS_ORG_FINANCIAL_CODE
    ELSE o4.SYS_ORG_FINANCIAL_CODE END SYS_ORG_FINANCIAL_CODE,
    --若机构表第二层为空,算第一层的机构名,依次类推。
    CASE WHEN o2.SYS_ORG_ID IS NULL THEN o1.SYS_ORG_NAME
    WHEN o3.SYS_ORG_ID IS NULL THEN o2.SYS_ORG_NAME
    WHEN o4.SYS_ORG_ID IS NULL THEN o3.SYS_ORG_NAME
    ELSE o4.SYS_ORG_NAME END SYS_ORG_NAME,
    t3.SYS_ORG_TYPE_ID one_level_code,t3.SYS_ORG_TYPE_NAME one_level_name, --机构类型表最底层
    o1.SYS_ORG_ID two_level_code,o1.SYS_ORG_NAME two_level_name, --机构表第一层
    o2.SYS_ORG_ID three_level_code,o2.SYS_ORG_NAME three_level_name, --机构表第二层
    o3.SYS_ORG_ID four_level_code,o3.SYS_ORG_NAME four_level_name, --机构表第三层
    o4.SYS_ORG_ID five_level_code,o4.SYS_ORG_NAME five_level_name --机构表第四层
    FROM
    SYS_ORG_TYPE_TB t1
    INNER JOIN SYS_ORG_TYPE_TB t2 ON t1.SYS_ORG_TYPE_ID = t2.SYS_ORG_TYPE_UPID --机构类型第一层t1,第二层t2
    LEFT JOIN SYS_ORG_TYPE_TB t3 ON t2.SYS_ORG_TYPE_ID = t3.SYS_ORG_TYPE_UPID --机构类型第三层t3
    LEFT JOIN (SELECT * FROM SYS_ORG_TB WHERE SYS_ORG_UPID IS NULL) o1
    ON t3.SYS_ORG_TYPE_ID = o1.SYS_ORG_TYPE_ID --机构表第一层o1
    LEFT JOIN SYS_ORG_TB o2 ON o1.SYS_ORG_ID = o2.SYS_ORG_UPID --机构表第二层o2
    LEFT JOIN SYS_ORG_TB o3 ON o2.SYS_ORG_ID = o3.SYS_ORG_UPID --机构表第三层o3
    LEFT JOIN SYS_ORG_TB o4 ON o3.SYS_ORG_ID = o4.SYS_ORG_UPID --机构表第四层o4
    WHERE t1.SYS_ORG_TYPE_NAME='商业银行'

  • 相关阅读:
    数据库空间使用情况
    创建database link
    oracle导出指定几张表的数据以逗号等为分隔符
    Oracle手工创建实例
    通过shell脚本调用oracle存储过程并加入定时任务
    oracle导出与导入脚本
    在存储过程中为表添加月分区与日分区
    oracle添加分区
    ORACLE_SID与SID区别
    AUTHID DEFINER与AUTHID CURRENT_USER
  • 原文地址:https://www.cnblogs.com/revo/p/8329973.html
Copyright © 2011-2022 走看看