SQLSERVER将子查询一列相同数据合并拼接成另一列
时间: 2023-12-05 19:04:43 浏览: 216
您可以使用 `STUFF` 和 `FOR XML PATH` 来实现将子查询中一列相同数据合并拼接成另一列的操作。具体步骤如下:
1. 使用子查询获取相同数据的列,例如:
```sql
SELECT ColumnA
FROM TableA
WHERE ColumnB = 'xxx'
```
2. 在子查询中使用 `FOR XML PATH` 将数据拼接成字符串,例如:
```sql
SELECT STUFF((
SELECT ',' + ColumnA
FROM TableA
WHERE ColumnB = 'xxx'
FOR XML PATH('')
), 1, 1, '') AS ConcatenatedColumn
```
其中,`STUFF` 函数用于去除字符串的第一个逗号。
3. 将拼接后的字符串作为另一列输出,例如:
```sql
SELECT ColumnB, STUFF((
SELECT ',' + ColumnA
FROM TableA
WHERE ColumnB = 'xxx'
FOR XML PATH('')
), 1, 1, '') AS ConcatenatedColumn
FROM TableA
WHERE ColumnB = 'xxx'
```
这样就将子查询中一列相同数据合并拼接成另一列了。
阅读全文