如表TAB1ID    STR
1     ASD
3     AWE
2     WER
3     ASD
1     QWE想得到如下表:
ID    STR
1     ASDQWE
2     WER
3     AWEASD
即相同ID列把STR字段累加!谢谢了!

解决方案 »

  1.   

    create table TAB1
    (ID int,[STR] varchar(20))
    INSERT TAB1 
    SELECT 1     ,'ASD' UNION ALL
    SELECT 3     ,'AWE' UNION ALL
    SELECT 2     ,'WER' UNION ALL
    SELECT 3     ,'ASD' UNION ALL
    SELECT 1     ,'QWE'
    --SELECT * FROM TAB1
    GOcreate function Gettxt(@id int)
    returns varchar(8000)
    as
    begin
        declare @s varchar(8000)
    set @s=''
    select @s=@s +'' +[STR] from TAB1 where id=@id
    return @s
    end
    goselect id,dbo.Gettxt(id) [STR] from TAB1 group by idDROP FUNCTION Gettxt
    DROP TABLE TAB1
      

  2.   

    直接转载:)
    create function Gettxt(@id int)
    returns varchar(8000)
    as
    begin
    declare @s varchar(8000)
    set @s=''
    select @s=@s+STR from TAB1 where id=@id
    return @s
    end
    go
    select id,dbo.Gettxt(id) txt from TAB1 group by id
      

  3.   

    唉  确实要自己实现  这样简单的功能为什么sql server不提供内置函数呢
      

  4.   

    create table TAB1
    (ID int,[STR] varchar(20))
    INSERT TAB1 
    SELECT 1     ,'ASD' UNION ALL
    SELECT 3     ,'AWE' UNION ALL
    SELECT 2     ,'WER' UNION ALL
    SELECT 3     ,'ASD' UNION ALL
    SELECT 1     ,'QWE'
    --SELECT * FROM TAB1
    GOcreate function Gettxt(@id int)
    returns varchar(8000)
    as
    begin
        declare @s varchar(8000)
    set @s=''
    select @s=@s +'' +[STR] from TAB1 where id=@id
    return @s
    end
    goselect id,dbo.Gettxt(id) [STR] from TAB1 group by idDROP FUNCTION Gettxt
    DROP TABLE TAB1