加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2005 IsNumeric无法捕获’0310D45′

发布时间:2020-12-12 08:22:56 所属栏目:MsSql教程 来源:网络整理
导读:我有这个价值’0310D45′ 我正在使用isnumeric来检查在转换为bigint之前值是否为数字.不幸的是,这个值正在通过isnumeric检查.所以我的查询没有说: Msg 8114,Level 16,State 5,Line 3Error converting data type varchar to bigint. 处理这个问题最简单的方法
我有这个价值’0310D45′

我正在使用isnumeric来检查在转换为bigint之前值是否为数字.不幸的是,这个值正在通过isnumeric检查.所以我的查询没有说:

Msg 8114,Level 16,State 5,Line 3
Error converting data type varchar to bigint.

处理这个问题最简单的方法是什么.我正在考虑使用charindex,但我必须检查所有26个字母.

是否有一个我没有看到的简单解决方案?我真的不想创建用户定义的函数.

谢谢

解决方法

看看这篇名为 What is wrong with IsNumeric()?的文章,其中包含以下摘要:

Abstract: T-SQL’s ISNUMERIC() function has a problem. It can falsely interpret
non-numeric letters and symbols (such as D,E,and £),and even tabs
(CHAR(9)) as numeric.

不幸的是,看起来IsNumeric看起来很奇怪,你将不得不编写几行T-SQL来解决它. (奇怪的是,我的意思是,如果评估的数据可以转换为任何数字类型,它将被转换.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读