读书人

帮看下-怎么把这样的varchar转为int

发布时间: 2012-06-22 16:16:32 作者: rapoo

大虾帮看下---------如何把这样的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
还用种方法就是动态执行:例如gocreate proc pro_test @a varchar(20)asdeclare @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

读书人网 >SQL Server

热点推荐