【问题标题】:Inconsistent result from isnumeric来自 isnumeric 的结果不一致
【发布时间】:2015-12-07 13:17:31
【问题描述】:

我有以下疑问。

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

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

【问题讨论】:

标签: sql-server isnumeric


【解决方案1】:

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

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

【讨论】:

  • 谢谢。你是对的,因为空间。它可以工作,但是当我尝试复制单元格数据并粘贴到记事本和其他编辑器中时,我找不到空间。
猜你喜欢
  • 2015-06-21
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2021-03-27
相关资源
最近更新 更多