首页 > 技术文章 > update当根据条件不同时 更新同一个字段的方法 或多表插入

steel-chen 2017-06-29 14:44 原文

1.通过存储过程

循环 传值

create or replace procedure p_u is
begin
for rs in (select distinct (rks) from rkbz)
loop
update osm_t_arc_customers t
set t.population = rs.rks + 4
where t.code in
(select code
from osm_t_arc_customers
where code in (select rscode from rkbz where rks = rs.rks));
end loop;
end p_u;

2.通过case when then else end

-------更新c1表中rks 当rks=1时 set rks为5 rks=2时 set rks为6 其余的为4

update c1
set rks = (case
when rks = 1 then
5
when rks = 2 then
6
else
4
end);

 

3.多表插入

INSERT ALL
WHEN (id=1) THEN
INTO table_1 (id, name)
values(id,name)
WHEN (id=2) THEN
INTO table_2 (id, name)
values(id,name)
ELSE
INTO table_other (id, name)
values(id, name)
SELECT id,name
FROM a;

 

推荐阅读