select decode(  nvl(col1,0)+nvl(col2,0), 0, 0,
                                         nvl(col1,0)/(nvl(col1,0) + nvl(col2,0))
             )  
from tabName

解决方案 »

  1.   

    select a/(nvl(decode(a,0,'2',a), 1) + b) from tab;
      

  2.   

    hevin(刚出道,CODING) 的正确,顶一下
      

  3.   

    ------->   值都可以为null和0(nvl(col1,0) + nvl(col2,0))如果都为0的话还是会出现除0操作:select 
        nvl(col1,0)/(decode(nvl(col1,0),0,decode(nvl(col2,0),0,1,nvl(col1,0)+col2),col1+nvl(col2,0)) 
    from 
    tablename
      

  4.   

    解决了, zakat的方法很好,如果不是null和0,还可显示原值,谢谢大家
      

  5.   

    select a/(nvl(decode(a,0,'2',a), 1) + b) from tab;??????
    if a=1 and b=-1 then.....
      

  6.   

    hevin(刚出道,CODING)赫赫。。郁闷就不用了吧:)