0

为什么 ISNUMERIC = 0 返回带有空格和 '/' 的数字?这是 SQL Server 2008 R2 顺便说一句

多谢你们,

代码示例:

  SELECT A AS 'VARCHARCOLUMN' FROM TABLE
    WHERE ISNUMERIC(A) = 0

    TABLE Structure:
    ----------------------
        A  |   B    |   C   |
    ----------------------
      x    |        |       |
      .    |        |       |
      p    |        |       |
     1 7/2 |        |       |
     15.   |        |       |
      5    |        |       |


      Result set:
   ----------------------
        A  |   B    |   C   |
    ----------------------
      x    |        |       |
      p    |        |       |
     1 7/2 |        |       | <- Why is this returned???
4

2 回答 2

0

因为这些都不被认为是数字的。值 '1 7/2' 不是数字值 - 它是一个字符串(斜线和空格是非数字的)。

于 2015-12-17T22:31:28.330 回答
0

SQL Server 中的 IsNumeric 函数仅在表达式为有效数值类型时才返回 true。它不明白表达式是 1 和八分之七。它认为这是一个字符串。 MSDN IsNumeric 参考

于 2015-12-17T22:34:18.497 回答