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
为什么 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