Sql Server 2016中本机编译的存储过程的字符串聚合函数

时间:2017-03-10 12:30:33

标签: sql-server

我想使用内存优化/本机编译的存储过程功能来从性能改进中受益。所以,我想我必须将SQL Server 2012升级到SQL Server 2016.理想情况下,我想重用一些T-SQL代码。

我已经迁移了一些代码,但之前我在很大程度上依赖于使用GROUP_CONCAT()函数来聚合字符串,这是一个自定义CLR聚合函数。它基本上在使用GROUP BY时串联字符串(用逗号分隔),如下所示;

SELECT City, dbo.GROUP_CONCAT(FirstName) AS Names
FROM Persons
GROUP BY City

City     Names
London Mark,Scott,Rob
Paris   Francois,Liza

但由于CLR函数不能与本机编译的存储过程一起使用,任何人都可以提出一些实现所需输出的方法。

我知道FOR XML PATH方法可以获得类似的结果,但在本机编译的存储过程中也不支持。

另外,请注意,我在GROUP BY子句中指定了多个列。

0 个答案:

没有答案