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中文网其他相关文章!