sql将一列数据拼成一个字符串的方法

SELECT STUFF(CONVERT(VARCHAR(500), ( SELECT TOP 10
',' + BG_Country
FROM dbo.BS_Budget
FOR
XML PATH('')
)), 1, 1, '')

stuff用法

1、作用

删除指定长度的字符,并在指定的起点处插入另一组字符。

2、语法

STUFF ( character_expression , start , length ,character_expression )

FOR XML PATH('')用法

将结果转换成xml括号内给节点起别字如果给空的话会拿列名当节点名称。拼上逗号造成没有列名字所以没有节点名称就成了一个字符串没有节点名称然后转换成字符串再用stuff函数截取一下就变成了想要的的结果了

第二种方法

DECLARE @id VARCHAR(5000)
SET @id = '' -- 需要先赋值为空字符串,不然结果会是 null
SELECT @id = @id + CONVERT(VARCHAR(50), id) + ','--需要字符串类型拼在一起
FROM Fcst_SalesHistory
SELECT @id