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
又问这个问题了?