可声明一varchar变量@str,再select distinct xm,@str=@str+dm from 表

解决方案 »

  1.   

    相同IDd的字符的?接  name     value
    ---------------------------------
      1        A
      2        B
      1        C
      3        E
      2        F
      1        G?果
      name     value
    -----------------------
      1        A,C,G
      2        B,F
      3        E--生成??数据
    create table tname(name int,value varchar(10))
    insert into tname select 1,'A'
    insert into tname select 2,'B'
    insert into tname select 1,'C'
    insert into tname select 3,'E'
    insert into tname select 2,'F'
    insert into tname select 1,'G'
    go--?建用?定?函数
    create function f_str(@name int)
    returns varchar(8000)
    as 
    begin
        declare @ret varchar(8000)
        set @ret = ''
        
        select @ret = @ret + ',' + value from tname where name = @name
        
        set @ret = stuff(@ret,1,1,'')
        
        return @ret
    end
    go--?行??
    select name,value=dbo.f_str(name) from tname group by name order by name--?出?果
    /*
    name  value
    ----  -----
    1     A,C,G
    2     B,F
    3     E
    */--?除???境
    drop function f_str
    drop table tname
    go