update当根据条件不同时 更新同一个字段的方法 或多表插入

本文介绍了三种实用的SQL技巧:通过存储过程循环传值进行批量更新、使用CASE WHEN THEN ELSE END语句更新特定条件的数据以及实现根据不同条件向多个表中插入数据的方法。

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;

 

转载于:https://www.cnblogs.com/steel-chen/p/7094374.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值