gpt4 book ai didi

sql - 如何安全地将 varchar(255) 转换为 int?

转载 作者:行者123 更新时间:2023-12-04 22:05:15 25 4
gpt4 key购买 nike

我在 case 表达式中使用了一个列,它在 server1 上运行良好。当我在 server2 上运行它时,它失败了,因为该列中的值为“false”。

该列是一个 varchar(255),但在我的 case 表达式中,我将其用作 INT 类型。它工作正常,但现在由于 server2 中的“false”值而失败。

如何安全地转换为 INT,如果转换失败,则默认为 0。

这可能吗?

我的查询如下:

UPDATE t1
set
c1 = ISNULL(
(
SELECT CASE c2
WHEN 123 then 'hello'
WHEN 234 then 'bye'
ELSE ''
END
)
, '')
FROM table1 as t1

最佳答案

numeric 转换为 varchar 的方法有很多,但没有一种方法可供您使用(真的,SQLServer2008 令人失望,因为它只缺少一些几乎需要的很酷的功能)。

在您的情况下,最好的方法是像这样简单地将您的数字表达式转换为 varchar :

UPDATE t1
set c1 = CASE c2
WHEN '123' then 'hello'
WHEN '234' then 'bye'
ELSE ''
END
FROM @t1 t1

它没有回答问题,但它解决了你的问题。

关于sql - 如何安全地将 varchar(255) 转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903400/

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