SQL将多个结果集合并为一个结果,每个结果以逗号隔开

发布时间 2023-12-07 11:43:11作者: 尤念

场景描述:假设一张表有列A查询出的结果

  A
小张
小明
小红

需要返回结果为:小张,小明,小红

实现步骤:需要使用到两个函数,分别是for xml Path(''),Stuff(p1,p2,p3,p4)

函数1:使用实例

select ','+A from [tablename] for xml Path('')

返回结果:,小张,小明,小红

通过返回结果可以看出,合并的结果集第一位字符多了一个逗号

函数2:使用实例stuff(p1,p2,p3,p4)参数1为要处理的字符串或表达式,参数2为替换的字符位置,参数3替换的长度,参数4替换成什么字符,可以是空字符串

select stuff(select ','+A from [tablename] for xml Path(''),1,1,'') as result

最终返回结果:小张,小明,小红