如何在update中使用case分支控制流

在我的存储过程中有一个输入参数  
  根据该参数的不同值,我要更新同一个表的不同字段,我想用CASE实现,请问如何做。  
  谢谢  

1 楼ldy(罗大佑)回复于 2002-06-11 17:00:13 得分 10

update   l_sent    
  set   if_print   =   if_print   +   1,  
  serial   =  
  case   isnull(serial,0)  
  when   0   then   :ll_serial  
  else   serial  
  end    
  where   mine_code   =   :gs_mine   and   sent_sdate   =   :ls_date   and   car_num   =   :ls_car;  
  commit;Top

2 楼ldy(罗大佑)回复于 2002-06-11 17:01:30 得分 0

update   l_sent    
  set   if_print   =   if_print   +   1,  
  serial   =  
  case   isnull(serial,0)  
  when   0   then   :ll_serial  
  else   serial  
  end    
  where   mine_code   =   :gs_mine   and   sent_sdate   =   :ls_date   and   car_num   =   :ls_car;  
  commit;Top

3 楼ldy(罗大佑)回复于 2002-06-11 17:02:28 得分 0

update   l_sent    
  set   if_print   =   if_print   +   1,  
  serial   =  
  case   isnull(serial,0)  
  when   0   then   :ll_serial  
  else   serial  
  end    
  where   mine_code   =   :gs_mine   and   sent_sdate   =   :ls_date   and   car_num   =   :ls_car;  
  commit;Top

4 楼qybao(阿宝)回复于 2002-06-11 17:07:39 得分 0

不同字段,用if吧  
  If   @参数   =   值1  
      Update   table1    
            Set   Field1   =   value1  
        Where   ...  
  Else   if   @参数   =   值2  
      Update   table1  
            Set   Field2   =   value2  
    Where   ...  
  Else  
      ...Top

5 楼tj_dns(愉快的登山者)回复于 2002-06-11 17:11:38 得分 10

使用动态SQL  
  select   @item   =   (case   @para   when   '1'   then   'item1'   when   '2'   then   'item2'   else   'itemn'   end)  
   
  set   @sql   =   'update   tablename   set   '+@item+'   =   @value'  
  exec(@sql)Top

6 楼zhangxdd(xudong)回复于 2002-06-14 23:03:44 得分 0

谢谢罗大佑和愉快的登山者,  
  你们的方法都可实现,  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值