zoukankan      html  css  js  c++  java
  • SQL按分隔符拆分字段串

    CREATE   VIEW [dbo].[Split_BusinessUnit]
    
    
    
    AS
    
    
    
        WITH tt
    
    
    
        AS (
    
    
    
           SELECT BusinessUnit.BusinessUnitId
    
    
    
                , BusinessUnit.BusinessUnitId zz_id
    
    
    
                , BusinessUnit.new_name
    
    
    
                , BusinessUnit.ParentBusinessUnitId
    
    
    
                , 1 lev
    
    
    
           FROM   BusinessUnit
    
    
    
           WHERE  IsDisabled = 0
    
    
    
           UNION ALL
    
    
    
           SELECT tt.BusinessUnitId
    
    
    
                , b.BusinessUnitId
    
    
    
                , b.new_name
    
    
    
                , b.ParentBusinessUnitId
    
    
    
                , lev + 1
    
    
    
           FROM   tt
    
    
    
                  JOIN BusinessUnit AS b
    
    
    
                      ON tt.ParentBusinessUnitId = b.BusinessUnitId
    
    
    
           WHERE  IsDisabled = 0 )
    
    
    
           , ttt
    
    
    
        AS ( SELECT BusinessUnitId
    
    
    
    
    
                  , CAST(zz_id AS VARCHAR(60)) zz_id
    
    
    
                  , new_name
    
    
    
                  , ROW_NUMBER() OVER ( PARTITION BY BusinessUnitId
    
    
    
                                        ORDER BY lev DESC ) lev
    
    
    
             FROM   tt )
    
    
    
        SELECT   BusinessUnitId
    
    
    
               , MAX(lev) lev
    
    
    
               , MAX(CASE WHEN lev = 1 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev1id
    
    
    
               , MAX(CASE WHEN lev = 1 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev1
    
    
    
               , MAX(CASE WHEN lev = 2 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev2id
    
    
    
               , MAX(CASE WHEN lev = 2 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev2
    
    
    
               , MAX(CASE WHEN lev = 3 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev3id
    
    
    
               , MAX(CASE WHEN lev = 3 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev3
    
    
    
               , MAX(CASE WHEN lev = 4 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev4id
    
    
    
               , MAX(CASE WHEN lev = 4 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev4
    
    
    
               , MAX(CASE WHEN lev = 5 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev5id
    
    
    
               , MAX(CASE WHEN lev = 5 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev5
    
    
    
               , MAX(CASE WHEN lev = 6 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev6id
    
    
    
               , MAX(CASE WHEN lev = 6 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev6
    
    
    
               , MAX(CASE WHEN lev = 7 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev7id
    
    
    
               , MAX(CASE WHEN lev = 7 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev7
    
    
    
               , MAX(CASE WHEN lev = 8 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev8id
    
    
    
               , MAX(CASE WHEN lev = 8 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev8
    
    
    
               , MAX(CASE WHEN lev = 9 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev9id
    
    
    
               , MAX(CASE WHEN lev = 9 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev9
    
    
    
               , MAX(CASE WHEN lev = 10 THEN zz_id
    
    
    
                          ELSE NULL
    
    
    
                     END) lev10id
    
    
    
               , MAX(CASE WHEN lev = 10 THEN new_name
    
    
    
                          ELSE NULL
    
    
    
                     END) lev10
    
    
    
        FROM     ttt
    
    
    
        GROUP BY BusinessUnitId;
  • 相关阅读:
    Eureka与Zookeeper的区别
    Eureka的集群配置
    Rest微服务案例
    Eureka概述
    SpringCloud与Dubbo区别对比
    各种微服务框架对比
    ElasticSearch(九):elasticsearch-head插件安装
    ElasticSearch(八):elasticsearch.yml配置说明
    Docker(2):使用Dockerfile创建支持SSH服务的镜像
    CentOS 7 安装Kubernetes(单机版)
  • 原文地址:https://www.cnblogs.com/BinBinGo/p/9559080.html
Copyright © 2011-2022 走看看