VARCHAR 列上的 ISNUMERIC 仍然返回数字吗?

ISNUMERIC on VARCHAR Column returning numbers still?

为什么 ISNUMERIC = 0 return 数字带有空格和“/”? 这是 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???

因为其中 none 个被认为是数字。值“1 7/2”不是数值 - 它是一个字符串(斜线和 space 是非数字)。

仅 SQL 服务器中的 IsNumeric 函数 returns 当表达式是有效的数字类型时为真。它不理解表达式是 1 和八分之七。它认为这是一个字符串。 MSDN IsNumeric Reference