如何在 SQL 中将多列变成字符串
按照@Alex Aza的单列字符串 :
select stuff(
(select ',' + cast([colum_name] as varchar)
from [dbtest].[dbo].[table]
for xml path('')),
1, 1, '')
如何使用它来获取表中所有列的字符串? 我正在考虑使用动态 SQL...
举个例子
col1 col2 col3
---------------
1 7 13
2 8 14
3 9 15
4 10 16
5 11 17
6 12 18
(结果类似于:1,2,3,4,5,6
)
如何使其返回:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
最佳答案
也许,你可以尝试这样的事情。
SELECT STUFF(
(
SELECT ',' + CAST([col] AS VARCHAR)
FROM
(
SELECT col1 AS col FROM [dbtest].[dbo].[table] UNION
SELECT col2 AS col FROM [dbtest].[dbo].[table] UNION
SELECT col3 AS col FROM [dbtest].[dbo].[table]
) alldata
FOR XML PATH('')
)
, 1
, 1
, ''
)
表中的示例数据如下所示...
查询输出如下:
关于sql-server - 表中的所有列都将 SQL 字符串化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935983/