gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:19:33 24 4
gpt4 key购买 nike

如何在 sql server 2008 中将 Varchar 转换为 Int。

当我尝试运行时,我有以下代码,它不允许我将 Varchar 转换为 Int。

Select Cast([Column1] as INT) 

Column1 是 Varchar(21) NOT NULL 类型,我想将它转换为 Int。
实际上,我试图将 Column1 插入到另一个字段为 INT 的表中。
有人可以帮我转换这个吗?

最佳答案

空格对 cast 来说不是问题,但是像 TAB 这样的字符, CRLF将显示为空格,不会被 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 作为您的 cast 的一部分:
select cast(replace(replace(@v3, char(13), ''), char(10), '') as int)

如果这是经常发生的事情,最好清理数据并修改表的填充方式以删除 CRLF在它被输入之前。

关于sql - 如何在 sql server 2008 中将 Varchar 转换为 Int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com