gpt4 book ai didi

sql-server - SQL Server 上的高效 ISNUMERIC() 替换?

转载 作者:行者123 更新时间:2023-12-02 04:31:23 25 4
gpt4 key购买 nike

所以我花了 5 个小时解决了一个问题,结果发现这个问题不仅是由 old unreliable 造成的。 ISNUMERIC 但看起来我的问题仅在其中 ISNUMERIC 声明为 WITH SCHEMABINDING 的 UDF 并在存储过程中调用时出现(我'我们需要做很多工作才能将其提炼成测试用例,但我的首要需求是用可靠的东西替换它)。

有关 ISNUMERIC() 的良好、高效替代方案的任何建议。显然,intmoney 等确实需要有所变化,但是人们使用的是什么(最好是在 T-SQL 中,因为在这个项目中,我受到限制)到 SQL Server,因为这是一个大容量 SQL Server 到 SQL Server 数据处理任务)?

最佳答案

如果您运行的是 SQL Server 2012,则可以使用 T-SQL 函数 TRY_CAST() 或 TRY_CONVERT(),正如 Bacon Bits 在评论中提到的那样:

SELECT CASE WHEN TRY_CAST('foo' AS INT) IS NULL THEN 0 ELSE 1 END

SELECT CASE WHEN TRY_CAST(1 AS INT) IS NULL THEN 0 ELSE 1 END

如果您使用的是 SQL 2008 R2 或更早版本,则必须使用 .NET CLR 函数,并包装 System.Decimal.TryParse()。

关于sql-server - SQL Server 上的高效 ISNUMERIC() 替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312054/

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