在sqlserver 2016中使用string_agg时出现错误。
在使用SQL Server 2016时,使用string_agg
函数会出现错误。这是因为string_agg
函数仅在SQL Server 2017及更高版本中支持。
解决方法是使用FOR XML PATH()
来实现相同的功能。以下是一个示例:
假设有以下样本数据:
Field A | Field B 1 | A 1 | B 2 | A
需要的输出是:
1 | AB 2 | A
可以使用以下查询来实现:
select distinct t1.FieldA, STUFF((SELECT distinct '' + t2.FieldB from yourtable t2 where t1.FieldA = t2.FieldA FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,0,'') data from yourtable t1;
如果您使用的是早期版本,或者想知道是否有等效的函数可用,请使用FOR XML PATH()
来实现相同的功能。以下是一个示例: