sql如何对字符串进行聚合

我们都知道sql里group by的聚合函数,都是针对sum,average等等,要求字段都是数值。如果是字符串呢?比如
编号        值 
a             aa
b             bb
a             cc
d             dd
a             ee   
我们要得到这样的结果
编号        值
a            aa,cc,ee
b            bb
d            dd
sql里没有现成的函数可以实现,那么我们可以自己写一个自定义函数:
create FUNCTION ConnectString 
(  
    @编号 nvarchar(50)
)  
RETURNS nvarchar(1024)  
AS  
BEGIN  
    declare @Str nvarchar(1024)  
    set @Str = ''  
    select @Str = @Str + [值]+',' from car
    where [编号] = @编号  
    return @Str  
END  
GO 
然后使用该函数进行查询:
select dbo.ConnectString(编号),编号 from table  group by 编号。

你可能感兴趣的:(sql,字符串聚合)