首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Tab char的ISNUMERIC函数(9)

带Tab char的ISNUMERIC函数(9)
EN

Stack Overflow用户
提问于 2016-09-21 09:59:28
回答 1查看 419关注 0票数 1

当我在Server中使用ISNUMERIC函数时,遇到了一个奇怪的麻烦。

检查文本,包括下面的字符ISNUMERIC函数返回1(true)。为什么?

代码语言:javascript
复制
Tab char(9)
Line feed char(10)
Carriage return char(13)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 10:01:14

不仅Char(9),它还适用于以下所有的值。

代码语言:javascript
复制
SELECT [Ascii Code]        = STR(Number),
        [Ascii Character]   = CHAR(Number),
        [ISNUMERIC Returns] = ISNUMERIC(CHAR(Number))
   FROM Master.dbo.spt_Values
  WHERE Type = 'P'
    AND Number BETWEEN 0 AND 255
    AND ISNUMERIC(CHAR(Number)) = 1

Ascii Code Ascii Character ISNUMERIC Returns 
---------- --------------- ----------------- 
         9                 1
        10                 1
        11                 1
        12                 1
        13                 1
        36 $               1
        43 +               1
        44 ,               1
        45 -               1
        46 .               1
        48 0               1
        49 1               1
        50 2               1
        51 3               1
        52 4               1
        53 5               1
        54 6               1

从官方docs..emphasis上高亮显示..。

当输入表达式计算为有效整数、浮点数、货币或十进制类型时,ISNUMERIC返回1;否则返回0。返回值1保证表达式可以转换为这些数值类型之一。

因此,如果Is数值返回上述突出显示部分中的任何一种类型,它将返回1。

Jeff描述了为什么部分这里

有许多字母、数字和符号的不同组合,它们实际上可以转换为数字数据类型,ISNUMERIC将为所有这些类型返回一个"1“。这不是缺陷..。它应该是这样工作的!

参考文献:

http://www.sqlservercentral.com/articles/ISNUMERIC()/71512/

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

https://stackoverflow.com/questions/39613330

复制
相关文章

相似问题

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