SQLServer中如何将一个字段的多个记录值合在一行显示

时间:2022-06-19 19:15:27
 有下表:   

      单位名称                 收费类别  
              1                       a  
              1                       b  
              1                       d  
              2                       a        
              3                       b  
              3                         c   
要求查询结果显示如下   

      单位名称 收费类别  
            1                       a,b,d  
            2                           a  
            3                         b,c  

函数实现
create   function   getstr(@单位名称   int)  
  returns   varchar(2000)  
  as    
  begin  
  declare   @str   varchar(2000)  
  set   @str=''  
  select   @str=@str+','+rtrim(收费类别)   from   表   where   单位名称=@单位名称  
  select   @str=right(@str,len(@str)-1)   where   @str<>''  
  return   @str  
  end  
  go  
   
  --调用:  
  select   单位名称,dbo.getstr(单位名称)   收费类别     from   表   group   by   单位名称