需要为 SQL SERVER 字符串值添加双引号

Need to add double quotes to SQL SERVER string values

我有从需要作为字符串输入并填充的参数传递的整数值,以便它们是 7 位数字。然后这将被传递到另一个查询中。

   declare @t table(ctl_num int)
   insert into @t values(5675, 45464, 2323)

   declare @control_num varchar(500)

   set @control_num = (select stuff((select ',' + right('000' + cast(ctl_num as varchar),7)
                      from @t
                      FOR XML PATH('')),1, 1', ''))

此代码将 @control_num 设置为 ('0005675, 0045464, 0002323')。我需要将其作为(“0005675”、“0045464”、“0002323”)传递。

我在网上查看了其他示例,但我似乎无法让它发挥作用。有谁知道如何在每个值周围加上双引号?

我建议:

select string_agg(concat('"', right('000' + cast(ctl_num as varchar(255)), 7), '"', ',')
from @t;

string_agg() 自 SQL Server 2017 以来可用。另请注意,在引用 [=18= 中的字符串时,您应该 始终 包含一个长度] 服务器.

我认为 @control_num 的设置有问题。

请尝试以下操作:

set @control_num = (select stuff((select ',"' + right('000' + cast(ctl_num as varchar),7) + '"'
                      from @t
                      FOR XML PATH('')),1, 1, ''))