需要为 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, ''))
我有从需要作为字符串输入并填充的参数传递的整数值,以便它们是 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, ''))