我的想法是:
例:
update 表1 set A = B+C
现在B有数,C为null,这条语句指行后无法更新,因为C为空。
能不能判断一下B,C中至少有一个不为null的,这样的语句,因为如果我改成
A= nvl(B,0)+nvl(C,0)这样的话如果BC同时为空那么这样的结果对我就不是需要的。反面会产生不必要的拉圾数据,除非B+C两个数是一样的,一正一负相抵销。
可能表达的不是太清楚,基本上是这个意思了,我想通过判断表达式中至少有一个不为空这样在对其进行nvl判断,各位还有什么好的方法,请指教!!!!

解决方案 »

  1.   

    update 表1 set A = B+C
    where b is not null or c is not null;
      

  2.   

    update 表1 set A = nvl(B,0)+nvl(C,0)
    where b is not null or c is not null;
      

  3.   

    我是这样写的你觉得那种效率更高?
    update 表1 set A = nvl(B,0)+nvl(C,0)
    where nvl(B,' ')!= ' ' or nvl(C,' ')!= ' ' ;
    谁还有更好的方法???请指教!
      

  4.   

    其实用了 or 效率就不会太高,不知道用where nvl(B,0)+nvl(C,0)!=0;是否会好点
      

  5.   

    waitwater(淡蓝色的水) ( ) 信誉:99    Blog  2007-2-27 12:00:30  得分: 0  
     
    其实用了 or 效率就不会太高,不知道用where nvl(B,0)+nvl(C,0)!=0;是否会好点  
     但null跟0不是一回事啊
      

  6.   

    update 表1 set A = decode((nvl(B,0)+nvl(C,0)),0,A)
    这个如何