SQLserver查询同多结果合并到同一格换行展示
时间: 2023-09-23 08:11:14 浏览: 203
SQL Server多表查询优化方案集锦
您可以尝试使用 `STUFF` 函数结合 `FOR XML PATH` 来实现将多行数据合并到同一格并用换行符分隔的效果。具体操作步骤如下:
1. 使用 `SELECT` 查询需要合并的多行数据,使用 `FOR XML PATH('')` 将多行数据合并到同一行,并且不添加 XML 标签。例如:
```
SELECT 'A' AS 'name'
UNION ALL
SELECT 'B' AS 'name'
UNION ALL
SELECT 'C' AS 'name'
```
该查询语句会返回以下结果:
```
name
----
A
B
C
```
2. 在查询语句的最后,使用 `STUFF` 函数将多行数据合并到同一格并且用换行符分隔开。例如:
```
SELECT STUFF((SELECT CHAR(13) + CHAR(10) + name FROM (
SELECT 'A' AS 'name'
UNION ALL
SELECT 'B' AS 'name'
UNION ALL
SELECT 'C' AS 'name'
) t FOR XML PATH('')), 1, 2, '') AS 'names'
```
该查询语句会返回以下结果:
```
names
--------
A
B
C
```
其中,`CHAR(13) + CHAR(10)` 表示换行符,`STUFF` 函数的第一个参数表示需要合并的多行数据,第二个参数表示从多行数据的第几个字符开始合并,第三个参数表示需要合并的字符数,这里是 2,表示合并换行符。
阅读全文