mssql多行数据快速合并为一行记录(mssql多行转1行)
SQL Server有一个STUFF函数,可以在多行行记录快速合并为一行记录,可以使我们生成逗号分隔的字符串。STUFF函数的语法如下:
STUFF ( , , , )
其中:
: 必须,要替换的字符串;
: 必须,开始替换的位置;
: 必须,替换字符个数;
: 必须,要插入的字符串;
示例:
现有数据表t_stuff如下:
+——–+———+
| dataid | datan |
+——–+———+
| 1 | 苹果 |
| 2 | 香蕉 |
| 3 | 西瓜 |
+——–+———+
通过STUFF函数将多行合并成一行:
select STUFF((SELECT ‘,’ + datan FROM t_stuff FOR XML PATH(”)), 1, 1, ”) as datan;
最终查询结果:
+———–+
| datan |
+———–+
| 苹果,香蕉,西瓜 |
+———–+
从上面的查询结果可知,多行数据被快速合并为一行记录。
在使用SQL Server时,可以使用STUFF函数快速将多行数据合并为一行记录,这有助于更高效、更快速地提取多行数据。