首页 >数据库 >mysql教程 >如何在 T-SQL 中使用默认值或 NULL 安全地将字符串转换为整数?

如何在 T-SQL 中使用默认值或 NULL 安全地将字符串转换为整数?

Patricia Arquette
Patricia Arquette原创
2024-12-30 01:51:10170浏览

How to Safely Cast Strings to Integers in T-SQL with Default Values or NULL?

TSQL:将字符串转换为具有默认值或 NULL 的整数

将字符串转换为整数是 T-SQL 中的常见任务。但是,当无法进行转换时,可能会发生错误。为了处理这种情况,T-SQL 提供了一种有用的方法,允许您在转换失败时返回默认值或 NULL。

解决方案

解决方案涉及使用ISNUMERIC() 函数检查字符串是否可以转换为整数。如果可以进行转换,则使用 CAST() 函数将字符串转换为整数。否则,返回默认值或 NULL。

以下代码片段演示了这种方法:

DECLARE @text AS NVARCHAR(10)

SET @text = '100'
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
-- returns 100

SET @text = 'XXX'
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
-- returns NULL

在此示例中,第一个 SELECT 语句返回 100,因为 '100' 可以转换为一个整数。第二个 SELECT 语句返回 NULL,因为 'XXX' 无法转换为整数。

注意事项

需要注意的是,ISNUMERIC() 函数有一些限制。正如 Fedor Hajdu 所指出的,对于包含某些字符的字符串,例如 $(货币)、,(分隔符)和 -,它可能会返回 true。因此,建议在验证整数转换输入时谨慎使用 ISNUMERIC()。

以上是如何在 T-SQL 中使用默认值或 NULL 安全地将字符串转换为整数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn