Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从varchar变量中去掉单引号_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 如何从varchar变量中去掉单引号

Sql 如何从varchar变量中去掉单引号,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个将数据传递给名为@inputvar的sql变量的应用程序。应用程序将数据作为字符串传递。存储过程将变量@inputvar声明为varchar。问题是,数据的格式是'12,13,15'。由于存储过程中的where子句,我得到一个错误,即在将varchar值转换为datatype int时,转换失败 原因是: select * from table where ID in (@inputvar) 我尝试过去掉引号:replace(@inputvar,“,”),我尝试过将变量转换为int

我有一个将数据传递给名为
@inputvar
的sql变量的应用程序。应用程序将数据作为字符串传递。存储过程将变量
@inputvar
声明为
varchar
。问题是,数据的格式是
'12,13,15'
。由于存储过程中的where子句,我得到一个错误,即在将varchar值转换为datatype int时,
转换失败

原因是:

select * 
from table 
where ID in (@inputvar)

我尝试过去掉引号:
replace(@inputvar,“,”)
,我尝试过将变量转换为int:
cast(@inputvar as int)
,但两次尝试都失败了

有多种方法可以处理这个问题;您可以使用动态查询来处理您的场景

DECLARE @inputvar varchar(10)
DECLARE @sql NVARCHAR(1000)
set @inputvar = '12,13,15'

set @sql = 'select * from table where ID in (' + REPLACE(@inputvar, '''','') + ')'
EXEC @sql
又问这个问题了?