db2视图4 例子

SET SCHEMA EDWDBA;

SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","EDWDBA";

CREATE VIEW "DM1"."V_DIM_GRP_AREA_DETAIL"
  AS  select par_area_id,par_area_name,area_id,area_name,level, rank()over(order by 
    level desc,
    case
      when area_id=par_area_id
        then 1
      else 0
    end,par_area_id,area_id) show_order, detail_area_id,detail_area_name
  from (
    select cast(null as integer) par_area_id,cast(null as varchar(20)) 
        par_area_name, admin_lo_id_2 area_id,substr(admin_lo_nm_2,1,9) 
        area_name,0 level, admin_lo_id_4 detail_area_id,admin_lo_nm_4 
        detail_area_name
      from bml.admin_lo_d
    union
    select distinct cast(null as integer) par_area_id,cast(null as varchar(20)
        ) par_area_name, admin_lo_id_2 area_id,substr(admin_lo_nm_2,1,9) 
        area_name,0 level, admin_lo_id_3 detail_area_id,admin_lo_nm_3 
        detail_area_name
      from bml.admin_lo_d
      where admin_lo_id_3<>1000
    union
    select distinct cast(null as integer) par_area_id,cast(null as varchar(20)
        ) par_area_name, admin_lo_id_2 area_id,substr(admin_lo_nm_2,1,9) 
        area_name,0 level, admin_lo_id_2 detail_area_id,admin_lo_nm_2 
        detail_area_name
      from bml.admin_lo_d
    union
    select admin_lo_id_2 par_area_id,substr(admin_lo_nm_2,1,9) par_area_name, 
        admin_lo_id_3 area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end area_name,1 level, admin_lo_id_4 detail_area_id,admin_lo_nm_4 
        detail_area_name
      from bml.admin_lo_d
    union
    select distinct admin_lo_id_2 par_area_id,substr(admin_lo_nm_2,1,9) 
        par_area_name, admin_lo_id_3 area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end area_name,1 level, admin_lo_id_3 detail_area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end||'待定' detail_area_name
      from bml.admin_lo_d
      where admin_lo_id_3<>1000
    union
    select distinct admin_lo_id_2 par_area_id,substr(admin_lo_nm_2,1,9) 
        par_area_name, admin_lo_id_2 area_id,substr(admin_lo_nm_2,1,9)||'待定'
        area_name,1 level, admin_lo_id_2 detail_area_id,substr(admin_lo_nm_2,1
        ,9)||'待定' detail_area_name
      from bml.admin_lo_d
      where admin_lo_id_3<>1000
    union
    select distinct admin_lo_id_2 par_area_id,substr(admin_lo_nm_2,1,9)|| 
        '待定' par_area_name, admin_lo_id_2 area_id,substr(admin_lo_nm_2,1,9) 
        ||'未知' area_name,2 level, admin_lo_id_2 detail_area_id,substr( 
        admin_lo_nm_2,1,9)||'未知' detail_area_name
      from bml.admin_lo_d
    union
    select distinct admin_lo_id_3 par_area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end par_area_name, admin_lo_id_4 area_id,admin_lo_nm_4 area_name,2 
        level, admin_lo_id_4 detail_area_id,admin_lo_nm_4 detail_area_name
      from bml.admin_lo_d
    union
    select distinct admin_lo_id_3 par_area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end par_area_name, admin_lo_id_3 area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end||'待定' area_name,2 level, admin_lo_id_3 detail_area_id,
        case
          when admin_lo_nm_3<>'连云港'
            then substr(admin_lo_nm_3,1,6)
          else admin_lo_nm_3
        end||'待定' detail_area_name
      from bml.admin_lo_d
      where admin_lo_id_3<>1000 ) v;

GRANT SELECT ON TABLE "DM1"."V_DIM_GRP_AREA_DETAIL" TO USER "CAODM";

GRANT CONTROL ON TABLE "DM1"."V_DIM_GRP_AREA_DETAIL" TO USER "EDWDBA";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值