在一个语句中评估一次比较两次的数字

时间:2012-08-03 00:00:30

标签: sql oracle where-clause

简单的问题...有没有办法在一个语句中比较一个数字和两个数字的where子句?像这样:

where 1000 > 500 > 300

原因是,如果我需要评估500并且价格昂贵,这将为替代方案节省大量时间:

where 1000 > 500
  and 500 > 300

2 个答案:

答案 0 :(得分:3)

你可以写

where 500 between 301 and 999

select a,b,c from (
   select a,b,c, 500 as d from ....
) where 1000 > d and d > 300

但也有希望数据库足够聪明,以确定它只需要进行一次计算。

答案 1 :(得分:-1)

如果计算500很昂贵,只需评估一次并存储其价值。 然后将此值与1000和100进行比较。