zoukankan      html  css  js  c++  java
  • 多行合并2列并去掉重复列

    --多行合并2列并去掉重复列:

    create table tb
    (col1
    varchar(10),
    col2
    varchar(10),
    col3
    varchar(10),
    col4
    varchar(10))
    go

    insert tb select '11111' ,   '222' ,      'A'  ,    1 
    insert tb select '1111' ,   '333' ,       'A' ,     1 
    insert tb select '2222' ,   '999' ,       'B' ,     2 
    insert tb select '3333'  ,  '111' ,       'B' ,     2 

    go
    create FUNCTION dbo.f_str(@col3 varchar(10))
    RETURNS varchar(8000)
    AS
    BEGIN
    declare @str varchar(8000)
    set @str=''
    select  @str=@str+
    case 
    when charindex(','+col1+'-',','+@str+'-')=0  then col1+'-'
    else '' 
    end+
    case 
    when charindex('-'+col2+',','-'+@str+',')=0  then col2+',' 
    else '' 
    end
    from tb 
    where col3=@col3
    return 
    left(@str,len(@str)-1)
    END
    go
    select distinct newcol=dbo.f_str(col3),col3,col4  from tb 

    drop table tb
    drop function f_str

    /*
    newcol                      col3  col4
    --------------------------------------
    11111-222,1111-333   A       1
    2222-999,3333-111    B        2
    */



  • 相关阅读:
    条件语句实例
    数据类型
    C#与.NET概述
    c#循环
    语句
    数组

    英文文献中的数学符号
    如何计算协方差、 协方差矩阵 、 相关系数 、 马氏距离
    opengl 笔记
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1638173.html
Copyright © 2011-2022 走看看