来自isnumeric的结果不一致

时间:2015-12-07 13:17:31

标签: sql-server isnumeric

我有以下疑问。

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

结果列的数据类型是varchar(50)。第一个查询产生0,即使结果类似于2,3并且只返回1表示浮点数...而第二个和第三个查询对整数和浮点数都适用。我错过了什么吗?我的要求是检查结果列是否是数字(整数,浮点数)。我知道isnumeric返回1类型,如钱,小钱,真实等,但这不是这里的情况,因为我没有这种类型在我的结果中,我只收到0。

1 个答案:

答案 0 :(得分:1)

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

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