【SQL】update中使用case when

1.创建测试表及数据

CREATE TABLE graduates (  
  name varchar(255) ,  
  income int4(255)   
);  
  
INSERT INTO graduates VALUES ('桑普森', '400000');  
INSERT INTO graduates VALUES ('迈克', '30000');  
INSERT INTO graduates VALUES ('怀特', '20000');  
INSERT INTO graduates VALUES ('阿诺德', '20000');  
INSERT INTO graduates VALUES ('史密斯', '20000');  
INSERT INTO graduates VALUES ('劳伦斯', '15000');  
INSERT INTO graduates VALUES ('哈德逊', '15000');  
INSERT INTO graduates VALUES ('肯特', '10000');  
INSERT INTO graduates VALUES ('贝克', '10000');  
INSERT INTO graduates VALUES ('斯科特', '10000'); 

2.如果我们想把工资为20000的减半,工资为15000的加500,使用case when一条SQL就可以完成,而且速度还非常快。

UPDATE graduates 
SET income =
CASE
 WHEN income = 20000 THEN
 income * 0.5 
 WHEN income = 15000 THEN
 income + 500 
 ELSE income 
END;

else income,非常重要,如果不指定else的话,其他不符合条件的人工资会被置为null。

select * from graduates;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值