627. Swap Salary
题目描述和难度
- 题目描述:
给定一个 salary
表,如下所示,有m=男性 和 f=女性的值 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。
例如:
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | m | 2500 | | 2 | B | f | 1500 | | 3 | C | m | 5500 | | 4 | D | f | 500 |
运行你所编写的查询语句之后,将会得到以下表:
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | f | 2500 | | 2 | B | m | 1500 | | 3 | C | f | 5500 | | 4 | D | m | 500 |
- 题目难度:简单。
- 英文网址:627. Swap Salary 。
- 中文网址:627. 交换工资 。
思路分析
求解关键:
用于测试的 SQL 语句:
drop table if exists salary;
create table salary(
id int primary key auto_increment,
name varchar(200),
sex char(1),
salary int
);
insert into salary(name,sex,salary) values('A','m',2500);
insert into salary(name,sex,salary) values('B','f',1500);
insert into salary(name,sex,salary) values('C','m',5500);
insert into salary(name,sex,salary) values('D','f',500);
select * from salary;
参考解答
参考解答1
UPDATE `salary` SET sex = IF(sex='m','f','m');
参考解答2
UPDATE `salary` SET sex = (CASE WHEN sex = 'm' THEN 'f' ELSE 'm' END);
本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0627-swap-salary ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com 。