读书人

字符串转INT型解决方案

发布时间: 2012-04-11 17:42:33 作者: rapoo

字符串转INT型
declare @str varchar(200)
set @str = '3,314,311,312,313,316,325,2223,2224,2225,327,319,321,2219,2221,2226'
select 2544, lxbh,20120327 from t_table where lxbh in (@thlxs)

因为t_table 中的lxbh是int型,所以语句报错。现在怎么样将@str的值转换成int型

[解决办法]
declare @str varchar(200)
set @str = '3,314,311,312,313,316,325,2223,2224,2225,327,319,321,2219,2221,2226'
exec('select 2544, lxbh,20120327 from t_table where lxbh in ('''+@str+''')')[code=SQL][/code]
[解决办法]

探讨
declare @str varchar(200)
set @str = '3,314,311,312,313,316,325,2223,2224,2225,327,319,321,2219,2221,2226'
select 2544, lxbh,20120327 from t_table where lxbh in (@thlxs)

因为t_table 中的lxbh是int型,所以……

[解决办法]
declare @str varchar(200)
set @str = '3,314,311,312,313,316,325,2223,2224,2225,327,319,321,2219,2221,2226'
select 2544, lxbh,20120327 from t_table where ','+@str+',' like '%,'+ltrim(lxbh)+',%'

[解决办法]
用动态或用patindex/charindex/like
SQL code
declare @str varchar(200)set @str = '3,314,311,312,313,316,325,2223,2224,2225,327,319,321,2219,2221,2226'select 2544, lxbh,20120327 from t_table where charindex('%,'+rtrim(lxbh)+',%',','+@thlxs+',')>0 

读书人网 >SQL Server

热点推荐