none
求合并记录的算法? RRS feed

  • 问题

  • create table test_a
    (
    code VARCHAR(10),
    remark VARCHAR(10)
    )
    insert into test_a
    select 'A','1' UNION
    select 'A','2' UNION
    select 'A','3' UNION
    select 'B','11' UNION
    select 'B','22' UNION
    select 'C','33' 
     
    求算法要求按code分组合并remark字段,转换后为:
     
    code    remark
    A    1,2,3
    B    11,22
    C    33
     
    希望也能给出逆向的算法
    2014年4月9日 11:07

答案

  • CREATE function GetRemark(@code varchar(10))
    returns varchar(8000)   
    as   
    begin   
    declare @str varchar(8000)   
    set @str=''   
    select @str=@str+','+Rtrim(Ltrim(remark)) from test_a where Rtrim(Ltrim(code))=Rtrim(Ltrim(@code))
    set @str=right(@str,len(@str)-1)   
    return(@str)   
    End
    go

    select distinct code,dbo.GetRemark(code) from test_a

    http://feiyun0112.cnblogs.com/

    2014年4月10日 1:30

全部回复