mssql多行数据快速合并为一行记录(mssql多行转1行)

2023-04-21 13:16:51 行数 快速 并为

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函数快速将多行数据合并为一行记录,这有助于更高效、更快速地提取多行数据。

相关文章