T-SQL中的变量中的单引号

时间:2017-02-09 10:23:09

标签: sql-server sql-server-2008 tsql

我有一个条件,用户将传递逗号分隔值,如

0071061386,0071061387

它将传递给一个变量,该变量将值提供给带有两个单引号的动态查询。

由用户传递

declare @s nvarchar(max) = '0071061386,0071061387'

它应该像转换用户值后一样,以便我可以将值传递给动态查询

declare @s nvarchar(max) = '''0071061386'',''0071061387'''

2 个答案:

答案 0 :(得分:1)

一个简单的替换可能在这里做的伎俩,但我相信这是一个XYProblem。也许你最好先解释导致你走这条路的问题。

declare @s nvarchar(max) = '0071061386,0071061387'

SELECT '''''' + REPLACE(@s, ',', ''''',''''') + '''''' 

结果:

''0071061386'',''0071061387''

答案 1 :(得分:0)

试试这个

  DECLARE @S NVARCHAR(MAX) = '0071061386,0071061387'
  SELECT REPLACE(''''''''+@S+'''''''',',',''''',''''')