请问,预设条件是,字段1=1,字段2=2,字段3=3,执行下面的语句:
update 表 set 字段1=字段3+1,字段2=字段1+2执行后,字段2的结果是3,而不是6,需要再执行一次语句,才可以获取到字段1set过后的值4进行计算。
请问,要怎样才能只执行一次语句,后面字段2的计算就可以获取到前面字段1更新后的值呢?

解决方案 »

  1.   

    要么执行两次 update ,分别更新字段 1 和字段 2 。 要么写成如下形式update 表 set 字段1=字段3+1,字段2=字段3+1+2原因是:
    在同一个语句中执行时,取的全部都是更新前的值,如果你研究一下 ORACLE 的前触发器,就容易理解这个了。
      

  2.   

    你把update语句改为:
    update 表 set 字段1=字段3+1,字段2=字段3+3这样就可以了
      

  3.   

    那只有写两个update了。