日期:2014-05-18  浏览次数:20492 次

大虾帮看下---------如何把这样的varchar转为int?
因为要在存储过程的SQL中使用 in (2,3,4,5)这样的语句,
而传进去的是字符型"2,3,4,5".

现在是如何,直接转为INT型 2,3,4,5?

因为中间有个逗号,所以不能直接转?有什么好办法



------解决方案--------------------
那就换种方式不用in了。

select * from tb where charindex(','+ltrim(id)+',',','+'1,2,3,4'+',') > 0
------解决方案--------------------
charindex(ltrim(col)+',',传进去的参数)>0
------解决方案--------------------
SQL code

还用种方法就是动态执行:

例如
go
create proc pro_test @a varchar(20)
as
declare @str varchar(max)
set @str=''
set @str='select * from test where id in('+@a+')'
exec(@str)

这样也行

------解决方案--------------------
cast(substring("2,3,4,5",1,1) as int)取得的是2 (int)
cast(substring("2,3,4,5",3,3) as int)取得的是3
cast(substring("2,3,4,5",5,5) as int)取得的是4
cast(substring("2,3,4,5",7,7) as int)取得的是5