SQLServer 中实现类似MySQL中的group_concat函数的功能

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起。

后在网上查找,找到了可以实现此功能的方法,特此记录下。

SELECT
	a,
	stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')),
		1,
		1,
		''
	)AS b from  # tb AS t
GROUP BY
	a;

先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉。

具体实现参考:http://blog.itnmg.net/sqlserver-group_concat/

对于其实使用到的for xml path 参考 http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

stuff 参考 http://msdn.microsoft.com/zh-cn/library/ms188043.aspx

原文地址:https://www.cnblogs.com/xpyan/p/4160212.html