如何从varchar变量

时间:2015-12-30 20:45:30

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

我有一个应用程序将数据传递给名为@inputvar的sql变量。应用程序将数据作为字符串传递。存储过程将变量@inputvar声明为varchar。问题是,数据的格式为'12,13,15'。由于存储过程中的where子句,我收到错误消息conversion failed when converting the varchar value to datatype int

原因是:

select * 
from table 
where ID in (@inputvar)

我尝试剥离引号:replace(@inputvar,'''','')我尝试将变量转换为int:cast(@inputvar as int),但两次尝试均失败

1 个答案:

答案 0 :(得分:0)

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

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