select (a.field1+b.field1)/b.filed1 from a , b 其中b.filed1的值如果为0 则不用计算 直接取0
但由于(a.field1+b.field1)/b.filed1  是一个整体
不能通过select decode(b.filed1,0,0,(a.field1+b.field1)/b.filed1) from a , b 解决 请问该怎么办?

解决方案 »

  1.   

    select  case when b.filed1=0 then 0 else 
                (a.field1+b.field1)/b.filed1 end  from a , b
      

  2.   

    a.field1+b.field1)/b.filed1  是个整体没发 分开的有无办法可判断
    (a.field1+b.field1)/b.filed1  为错误从而不执行
      

  3.   

    select 
    decode(substr((a.field1+b.field1)/b.filed1,instr((a.field1+b.field1)/b.filed1,'/',1)+1,length((a.field1+b.field1)/b.filed1)),'0',0,(a.field1+b.field1)/b.filed1) from a , b
      

  4.   

    通过/号将分子与分母分开,使用substr....instr就可以了