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
居然都是1 。
LZ 使用的是字母d , 试试看 e 也是同样的效果,因为在这里d和e代表的不是字符,而是数字符号。
同样,这个函数也就认定为一个数字类型。
------其他解决方案--------------------
这个不是一个错误,只是有趣的一个误解。如果LZ需要筛选数字,就需要使用NOT LIKE '%[^0-9]%'来确定了,
虽然这样的效率会比较低一些。