在sql server 2008中如何将Varchar转换成Int?

前端之家收集整理的这篇文章主要介绍了在sql server 2008中如何将Varchar转换成Int?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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清除数据.

根据您的评论,您可以使用REPLACE作为演员的一部分:

select cast(replace(replace(@v3,char(13),''),char(10),'') as int)

如果这是经常发生的情况,最好是清理数据并修改表的填充方式,以便在输入CR和LF之前删除CR和LF.

原文链接:https://www.f2er.com/mssql/79203.html

猜你在找的MsSQL相关文章