在SQL Server中,可以使用
FOR XML PATH
语句将多行数据合并成一行。具体步骤如下:
假设有以下表格结构:
CREATE TABLE TblData (
Col1 varchar(50),
Col2 varchar(50)
并且有以下数据:
Col1 Col2
------------------
现在我们想要将Col1
相同的行合并成一行,并且在一行中将Col2
的值用逗号隔开。即需要得到以下结果:
Col1 Col2
------------------
A 1,2,3
B 4,5
我们可以使用以下SQL语句实现此目的:
SELECT Col1, STUFF((
SELECT ',' + Col2
FROM TblData d2
WHERE d1.Col1 = d2.Col1
FOR XML PATH('')
), 1, 1, '') AS Col2
FROM TblData d1
GROUP BY Col1;
上述SQL语句中的STUFF()
函数用于去除第一个逗号,FOR XML PATH('')
用于将多行数据合并成一行,并且将每个Col2
值用逗号隔开。最后使用GROUP BY
将Col1
相同的行合并成一行。
希望这个回答对您有帮助。