用嵌套sql语句吧。
SELECT COL, COL/2 AS NUM FROM (
SELECT (COL2 - COL1) AS COL FROM TBL)前面的也一样。

解决方案 »

  1.   

    select least(greatest(col2-substr(col1,1,6),0),3) from ...
      

  2.   

    bobfang(匆匆过客)很感谢你对这个贴子的回答,但这个贴子里后一个问题,有好的解决方案吗?select 
       least(greatest(col2-substr(col1,1,6),0),3) As  rlt1
       least(greatest(col2-substr(col1,1,6),0),3)/3 As rlt2
    from ...类似上面的SQL文,因为least(greatest(col2-substr(col1,1,6),0),3) 重复计算了,效率会低一些,能不能有什么方法只计算一次?
      

  3.   

    我没有想到有什么好方法。按derris(深水鱼) 的方法,我测试过,oracle实际上还是进行了两次计算。你要看看计算是否很复杂,结果集是否多,如果是结果集不多,考虑先做第一次的复杂计算,将结果保存到临时表,再对临时表查询,做二次计算,空间换时间。