我正在尝试在SQLServer中聚合“ STRING”字段。我想找到与Oracle中相同的函数LISTAGG。
您知道如何执行相同的功能或其他方法吗?
例如,
Field A | Field B 1 | A 1 | B 2 | A
我希望这个查询的结果是
1 | AB 2 | A
从SQL Server 2017开始,该STRING_AGG功能可用,从而大大简化了逻辑:
STRING_AGG
select FieldA, string_agg(FieldB, '') as data from yourtable group by FieldA
在SQL Server中,您可以FOR XML PATH用来获取结果:
FOR XML PATH
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;