如何以单行逗号分隔和单引号获取SQL查询结果?

时间:2019-07-18 18:50:17

标签: sql sql-server

我需要将SQL查询的结果集作为一行,并用逗号定界符并将单引号括在每个列值周围。例如SQL查询的输出应为 'A1','A2','A3','A4','A5',......'An'

我可以使用LISTAGG来实现这一点,但是对于ORacle DB而言,它也有大小限制。所以我正在寻找没有这种大小限制的东西,也正在寻找SQL Server。任何帮助将不胜感激。

3 个答案:

答案 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