sql-server - 在 SQL Server 中使用逗号分隔的 STUFF 函数显示多列
问题描述
我需要在输出中显示一个用逗号分隔的表列(假设 2 列)值
col1 Col2
================
xyz abc
pqr uvw
需要的输出:
Col1 Col2
======== =======
xyz,pqr abc,uvw
我尝试了以下查询,但不确定如何将 col2 包含到以下查询中并将其作为单个查询:
SELECT
STUFF((SELECT DISTINCT ',' + CAST(t.Col1 AS VARCHAR(MAX))
FROM Table_1 t
FOR XML PATH('')), 1, 1, '')
解决方案
MS SQL Server 2017 架构设置:
create table MyTable(ColA varchar(max),ColB varchar(max))
INSERT INTO MyTable(ColA,ColB)VALUES('xyz','abc')
INSERT INTO MyTable(ColA,ColB)VALUES('pqr','uvw')
查询 1:
SELECT STUFF((select ',' + cast(t.ColA as varchar(max))
from MyTable t
for xml path ('')
), 1, 1, '') AS ColA,
STUFF((select ',' + cast(t.ColB as varchar(max))
from MyTable t
for xml path ('')
), 1, 1, '') AS ColB
查询 2:
SELECT
STRING_AGG(colA, ',') AS colA,
STRING_AGG(colB, ',') AS colB
FROM MyTable
结果:
| ColA | ColB |
|---------|---------|
| xyz,pqr | abc,uvw |
推荐阅读
- laravel - orwhereNotIn() 雄辩
- php - laravel 护照在 laravel 5.8 中不起作用
- bash - 从 Bash 的读取命令中检查空字符
- google-sheets - 在谷歌表格的两个标签中识别相同的单词
- database - Liquibase:“dropForeignKeyConstrant”不是 ChangeSet 的有效元素
- python - 来自 AWS 的 Python Json 输出未删除单引号
- javascript - 如何使用 getRange 选择不相邻的行?
- dataframe - 如何在pyspark数据框中任何列为空的行中过滤
- ruby-on-rails - 如何在 Rails 6 中检查字段是否具有验证?
- c - VSC、它的 powershell 和 C