在varchar字段中搜索特定范围的数值

时间:2014-06-17 12:58:29

标签: sql oracle

使用Oracle SQL Developer v3.2.20.09:

我有一个数据表,其中在所有其他数据中,我有一列所有数字结果(例如'RESULT_NUM}但由于它的存储和使用方式,是一个varchar2字段。我需要提取BTTEMP(一切都在华氏温度)的体温代码(TEMPERATUREVT_CODEresult_num > 100)的所有记录,所以单独搜索结果会有效。)

所以,我的简单陈述是:

Select * from VITALS where VT_CODE in ('BT', 'TEMP', 'TEMPERATURE');

这使我恢复了所有体温记录,超过2M。现在我需要对其进行优化以获得超过100的结果。

当我尝试添加“和result_num > 100”时,我收到错误,因为它是一个varchar字段,我试图用数字搜索。

当我尝试添加“和result_num > '100'”时,它会毫无错误地执行,因为它是一个字符值,但它会返回大于1的所有内容,而不是100,这显然就是一切。

请帮忙。

1 个答案:

答案 0 :(得分:0)

尝试以下

and convert(int,result_num) > 100

and CAST(result_num as INTEGER) > 100