在我的存储过程中有一个输入参数
根据该参数的不同值,我要更新同一个表的不同字段,我想用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
谢谢罗大佑和愉快的登山者,
你们的方法都可实现,