create function getresult(@标识号 varchar(10))
returns varchar(100)
as 
begin
declare @result varchar(100)
set @result=''
select @result=@result+第二个字段名 from yourtable where 标识号=@标识号
return @result
end语句:
select distinct 标识号,dbo.getresult(标识号) from yourtable

解决方案 »

  1.   

    1,建自定义函数
    Create function getstr(@id Nchar(100))
    returns Nvarchar(4000)
    as 
    begin
    declare @str Nvarchar(4000),@分隔符 Nvarchar(10)
    set @分隔符=N','
    set @str=N''
    select @str=@str+rtrim(Col)+@分隔符 from 表名
    --------------------------------^^^^要相加的字段名
    where 相加条件字段=@id
    set @str=left(@str,len(@str)-1)落 ---却除最后一个分隔符
    return @str
    end
    GO2,调用
    select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
      

  2.   

    create function getstr(@id int)
    return varchar(1000)
    as
    begin
    declare @str varchar(1000)
    set @str=''
    select @str=@str+ a + ','from @a where id=1
    set @str=left(@str,len(@str)-1)
    return @str
    end 
    go
    create table ta (id int,a varchar(10))
    insert ta values(1,'china')
    insert ta values(1,'america')
    insert ta values(1,'english')
    insert ta values(2,'aaa')
    insert ta values(2,'bbb')
    select id,dbo.getstr(id) from ta group  by id
      

  3.   

    大家都用自定义函数,我来写个用临时表的,这样sql7.0也可以用--为数据处理准备临时表
    select *,cast('' as varchar(8000)) as aa into #tb
      from 你的表 order by id,name--数据处理
    declare @id int,@name varchar(50)
    update #tb set @name=case @id when id then @name+name else name end
                  ,aa=@name,@id=id--显示结果
    select id,max(aa) as name from #tb group by id--删除临时表
    drop table #tb