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;
本文介绍了一种使用SQL的case when语句来高效更新数据库表中特定记录的方法。通过实例演示了如何针对不同收入水平的记录进行批量修改,包括将部分记录的收入减半或增加固定数额。
910

被折叠的 条评论
为什么被折叠?



