create   function   [dbo].[f_hb](@a int) 
returns   varchar(100) 
as 
begin 
    declare   @str   varchar(100) 
    set   @str   =   '' 
    select   @str = @str + cast(jiedian as varchar) +',' from tb_yusuan3 where bianhao = @a  and col='a8'    
    return(@str) 
End 
这个代码有用了,就是出来的结果有重复的, 就是多行数据想合并到一个里时 1,1,1,3, 想变成1,3,
自己改了select   @str = @str +case when  charindex(cast(jiedian as varchar),@str)<1 then cast(jiedian as varchar)+','  end from tb_yusuan3 where bianhao = @a  and col='a8'    不行.原问题地址http://topic.csdn.net/u/20110629/18/2566b194-7c9b-4890-9ef9-64c3a8c85c06.html

解决方案 »

  1.   

    select ..... ,dbo...... from (
    select distinct ..... from tb
    )t
      

  2.   

    create   function   [dbo].[f_hb](@a int) 
    returns   varchar(100) 
    as 
    begin 
        declare   @str   varchar(100) 
        set   @str   =   '' 
        select   @str = @str + cast(jiedian as varchar) +',' from tb_yusuan3 where bianhao = @a  and col='a8' group by  cast(jiedian as varchar)  
        return(@str) 
    End