isnumeric 的结果不一致

Inconsistent result from isnumeric

我有以下疑问。

    select ISNUMERIC(result+ 'E0'), from t1  
    select ISNUMERIC('7' + 'E0') 
    select ISNUMERIC('7' + '.E0') 

结果列的数据类型为 varchar(50)。即使结果类似于 2,3 和 returns 1 仅用于浮点数,第一个查询也会产生 0 ...而第二个和第三个查询工作正常对于整数和 float.Am 我遗漏了什么?我的要求是检查结果列是否为 number(integer,float) 或 not.I know isnumeric returns 1 for type like money,small money,real etc 但这里不是这种情况,因为我不知道我的结果中没有这种类型,我只收到 0。

结果看似不一致的原因可能是您的结果列值中有一个 space。尝试调整文本并将修剪后的文本提供给 ISNUMERIC:

select ISNUMERIC(ltrim(rtrim(result))+ 'E0') from t1