Updat mytab Set over_qty=case when over_qty<input_qty then 0 else over_qty-input_qty end
where...--(如果over_qty-input_qty小于0则为0,否则为over_qty-input_qty) where ....

解决方案 »

  1.   

    Update mytab Set over_qty=
    (case when over_qty<input_qty then 0 else over_qty-input_qty end)
    where...
      

  2.   


    declare @input_qty int
    Updat mytab Set 
    over_qty=case when over_qty<@input_qty then 0 else over_qty-input_qty end
    where 條件
      

  3.   

    Updat mytab 
      Set over_qty =(case when over_qty-input_qty<0 then 0 else over_qty-input_qty end) 
    where ....
      

  4.   

    如果是要<=0 时 则为0 ,其他为原值的话Updat mytab 
      Set over_qty =(case when over_qty-input_qty>0 then over_qty-input_qty else 0 end) 
    where ....
      

  5.   

    alter proc test
       @input_qty decimal(10, 4)
    as
       declare @Over_qty decimal(10, 4)
       select @Over_qty = Over_qty from mytab
       if @input_qty < @Over_qty 
     --  begin
          set @input_qty = 0
      -- end 
       else 
          set @input_qty= @input_qty - @Over_qty