结构如下
Balance   NUMBER(19,2)      余额(始终>=0)
FLAG      NUMBER(1)         余额符号(0正 1负)输入条件为 金额 amt(amt可能为正也可能为负),一句sql更新余额谢谢各位

解决方案 »

  1.   

    不好意思,没说清楚 ,重新描述下
    结构如下
    CardNo    varchar2(20)      卡号
    Balance   NUMBER(19,2)      余额(始终>=0)
    FLAG      NUMBER(1)         余额符号(0正 1负)输入条件为 金额,卡号 amt,cardnum(amt可能为正也可能为负),一句sql更新余额
      

  2.   

    update table_name set flag =decode(substr(to_char(金额),1,1),'-','1','0'),
                     Balance =decode(substr(to_char(金额),1,1),'-',to_number(substr(to_char(金额),2,length(to_char(金额) - 1 )))),金额)
                where cardno =  卡号
      

  3.   

    update t set balance=decode(sign(amt),1,amt,0-amt),flag=decode(sign(amt),1,0,1);
      

  4.   

    谢谢楼上两位,看来俺 对Oracle的函数实在是太不熟悉了