0

我有以下疑问。

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

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

4

1 回答 1

1

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

select ISNUMERIC(ltrim(rtrim(result))+ 'E0') from t1
于 2015-12-07T13:26:12.497 回答