我需要将SQL查询的结果集作为一行,并用逗号定界符并将单引号括在每个列值周围。例如SQL查询的输出应为 'A1','A2','A3','A4','A5',......'An'
我可以使用LISTAGG来实现这一点,但是对于ORacle DB而言,它也有大小限制。所以我正在寻找没有这种大小限制的东西,也正在寻找SQL Server。任何帮助将不胜感激。
答案 0 :(得分:0)
对不起,您的评论不足,但是LISTAGG是一个oracle函数。请参阅此堆栈溢出问题here
使用STRING_AGG
select STRING_AGG(FieldB, ',')
from yourtable t1;
答案 1 :(得分:0)
尝试...
The SELECT ',' + 'column name here' from 'the table' for xml path (''), type
或者在SQL Server 2017及更高版本中,STRING_AGG('column name here',',')使此任务更加整洁和容易。
答案 2 :(得分:0)
感谢大家的投入!我能够获得以下查询来为我工作:
Select SUBSTRING(
(
SELECT ',' +''''+ ColName +'''' AS 'data()'
FROM TableName FOR XML PATH('')
), 2 , 999999) As DCN