首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ISNUMERIC(',')是真的?

为什么ISNUMERIC(',')是真的?
EN

Stack Overflow用户
提问于 2014-06-05 06:58:38
回答 4查看 2.8K关注 0票数 4

为什么SQL中的以下查询返回true??我认为它是假的,因为它不能转换为int或数字值。

select ISNUMERIC(',')

返回1

代码语言:javascript
复制
select ISNUMERIC('0,1,2')

select ISNUMERIC(',,,')

还返回1

在SQL?中,我能为严格的数字检查做些什么?

EN

回答 4

Stack Overflow用户

发布于 2014-06-05 07:09:23

因为ISNUMERIC回答了一个没人想问的问题:

该给定字符串能否转换为Server的任何数值数据类型?我不在乎这些类型中的哪一种可以或不能被转换成哪一种。

这就是为什么TRY_CONVERT最终被引入到2012年-来回答一个关于您可能关心的特定数据类型的问题。

对于早期版本,最好的方法是使用LIKE来识别您想要转换的字符串模式。

例如,如果您只想检测数字,请使用Value NOT LIKE '%[^0-9]%',它要求不包含任何非数字字符的Value字符串。

票数 6
EN

Stack Overflow用户

发布于 2014-06-05 07:09:45

IsNumeric为“、”和“返回true。”

如果字符串可以转换为任何一个ints、数字/十进制、浮点数或货币,则ISNUMERIC返回1。在这种情况下,转换',.‘要成功并返回0.0000,则ISNUMERIC返回1。

ISNUMERIC的增强

我们现在添加了一个名为TRY_CONVERT的新标量函数,它允许您使用可选样式从字符串转换为类型。如果转换失败,则返回NULL。该职能的签名如下: TRY_CONVERT(data_type(长度),表达式,风格)

票数 3
EN

Stack Overflow用户

发布于 2014-06-05 07:08:40

http://msdn.microsoft.com/en-us/library/ms186272.aspx

微软:“这不是一个bug,而是一个特性”

某些货币和数学符号在ISNUMERIC上返回1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24053613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档