zoukankan      html  css  js  c++  java
  • sql sever使用sql语句查询数据, 分割某字段改为多行,其它字段保持不变

    如表中有A、B、C三个字段,数据如下:

    A         B       C

    1,2      3       4

    要求查询结果:

    A         B       C

    1         3       4

    2         3       4

    查询语句:

    with t as 
    (
    	select B,C
            ,A=case charindex(',',A) when 0 then A else left(A,charindex(',',A)-1) end
            ,Aleft=case charindex(',',A) when 0 then '' else substring(A,charindex(',',A)+1,len(A)) end
        from 表名
    	WHERE 1=1  --条件,看个人需求
        union all 
        select B,C
            ,A=case charindex(',',Aleft) when 0 then Aleft else left(Aleft,charindex(',',Aleft)-1) end
            ,Aleft=case charindex(',',Aleft) when 0 then '' else substring(Aleft,charindex(',',Aleft)+1,len(Aleft)) end
        from t
        where Aleft <> ''
    ) 
    select A,B,C from t
    

      

  • 相关阅读:
    多线程
    集合与文件操作
    Net基础复习
    form表单
    html的常用标签和属性
    C#泛型与linq
    2020 年度总结 & OI 生涯感想——当年酒狂自负
    TODO-List
    Attention Points
    THUWC2020 游记
  • 原文地址:https://www.cnblogs.com/xiaojitui/p/9310201.html
Copyright © 2011-2022 走看看