gpt4 book ai didi

sql - T-Sql ISNUMERIC ('45D-1' ) 返回 1

转载 作者:行者123 更新时间:2023-12-03 02:27:57 25 4
gpt4 key购买 nike

我有一个 T-Sql 语句,它从表中获取下一个可用数字。但该列的类型为 nvarchar。它必须是一个数字,但我仍然需要能够获得下一个可用的数字

所以当我运行sql时我尝试只获取数字

WHERE
ISNUMERIC(myCol) AND CAST(REPLACE(myCol, N'0', N'') AS int)

但我收到错误

Conversion failed when converting the nvarchar value '45D-1' to data type int.

所以我就跑

select ISNUMERIC('45D-1')

令我惊讶的是,这是真的

我已经写了一个“.”的替代品。这是有道理的,但是为什么“D”是数字呢?为什么不能 sql 转换它?有没有一个函数可以真正测试它是否是 Int?

最佳答案

INTNUMERIC 不同。 ISNUMERIC 返回任何可能的数字类型(INT、BIGINT、DECIMAL、FLOAT、MONEY)

示例:SELECT ISNUMERIC('$')

这不是 INT,但会返回 true,因为它的格式正确为 MONEYISNUMERIC 也适用于科学记数法...SELECT ISNUMERIC('1e4') 结果为 true。我要表达的观点是,在不了解 ISNUMERIC 评估的内容或所有可能性的情况下,不要完全相信它。

关于sql - T-Sql ISNUMERIC ('45D-1' ) 返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898509/

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