Vik*_*ore 15 sql sql-server-2005 sql-server-2008
如何在sql server 2008中将Varchar转换为Int.
当我试图运行它时我有以下代码不允许我将Varchar转换为Int.
Select Cast([Column1] as INT)
Run Code Online (Sandbox Code Playgroud)
Column1是Varchar(21)NOT NULL类型,我想将它转换为Int.实际上我正在尝试将Column1插入另一个具有Field为INT的表中.有人可以帮我转换一下吗?
Jef*_*ata 19
空格不会是一个问题cast,但是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
Run Code Online (Sandbox Code Playgroud)
检查输入中是否有这些字符,如果找到它们,请使用REPLACE清理数据.
根据您的评论,您可以将其REPLACE作为您的一部分cast:
select cast(replace(replace(@v3, char(13), ''), char(10), '') as int)
Run Code Online (Sandbox Code Playgroud)
如果这一点是要经常发生的事情,这将是更好地清理数据和修改表填充去除的方式CR和LF进入前.
| 归档时间: |
|
| 查看次数: |
252986 次 |
| 最近记录: |