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]%'来确定了, 虽然这样的效率会比较低一些。