在sql server 2008中如何将Varchar转换成Int?
发布时间:2020-12-12 06:24:28 所属栏目:MsSql教程 来源:网络整理
导读:在sql server 2008中如何将Varchar转换为Int. 我有以下代码,当我试图运行它不允许我将Varchar转换为Int. Select Cast([Column1] as INT) Column1是Varchar(21)NOT NULL类型,我想将其转换为Int. 实际上我正在尝试将Column1插入到另一个具有Field作为INT的表中.
在sql server 2008中如何将Varchar转换为Int.
我有以下代码,当我试图运行它不允许我将Varchar转换为Int. Select Cast([Column1] as INT) Column1是Varchar(21)NOT NULL类型,我想将其转换为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) 如果这是经常发生的情况,最好是清理数据并修改表的填充方式,以便在输入CR和LF之前删除CR和LF. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |