在sql server 2008中如何将Varchar转换为Int.
我有以下代码,当我试图运行它不允许我将Varchar转换为Int.
Select Cast([Column1] as INT)
Column1是Varchar(21)NOT NULL类型,我想将其转换为Int.
实际上我正在尝试将Column1插入到另一个具有Field作为INT的表中.
有人可以帮我转换吗?
解决方法
空格不会是转换的问题,但是TAB,CR或LF等字符将显示为空格,不会被LTRIM或RTRIM修剪,这将是一个问题.
例如尝试以下:
declare @v1 varchar(21) = '66',@v2 varchar(21) = ' 66 ',@v3 varchar(21) = '66' + char(13) + char(10),@v4 varchar(21) = char(9) + '66' select cast(@v1 as int) -- ok select cast(@v2 as int) -- ok select cast(@v3 as int) -- error select cast(@v4 as int) -- error
检查这些字符的输入,如果找到它们,请使用REPLACE清除数据.
select cast(replace(replace(@v3,char(13),''),char(10),'') as int)