我有以下疑问。
select ISNUMERIC(result+ 'E0'), from t1
select ISNUMERIC('7' + 'E0')
select ISNUMERIC('7' + '.E0')
结果列的数据类型是varchar(50)。第一个查询产生0,即使结果类似于2,3并且只返回1表示浮点数...而第二个和第三个查询对整数和浮点数都适用。我错过了什么吗?我的要求是检查结果列是否是数字(整数,浮点数)。我知道isnumeric返回1类型,如钱,小钱,真实等,但这不是这里的情况,因为我没有这种类型在我的结果中,我只收到0。
答案 0 :(得分:1)
结果看似不一致的原因可能是结果列值中有空格。尝试调整文本并将修剪过的文本提供给ISNUMERIC:
select ISNUMERIC(ltrim(rtrim(result))+ 'E0') from t1