The MySQL If and Case Statement Exercise: How to Swap Elements i
- 时间:2020-09-23 15:50:46
- 分类:网络文摘
- 阅读:120 次
Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update statement and no intermediate temp table.
Note that you must write a single update statement, DO NOT write any select statement for this problem.
Example:
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | m | 2500 | | 2 | B | f | 1500 | | 3 | C | m | 5500 | | 4 | D | f | 500 |After running your update statement, the above salary table should have the following rows:
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | f | 2500 | | 2 | B | m | 1500 | | 3 | C | f | 5500 | | 4 | D | m | 500 |
SQL Schema
1 2 3 4 5 6 | create table if not exists salary(id int, name varchar(100), sex char(1), salary int) Truncate table salary insert into salary (id, name, sex, salary) values ('1', 'A', 'm', '2500') insert into salary (id, name, sex, salary) values ('2', 'B', 'f', '1500') insert into salary (id, name, sex, salary) values ('3', 'C', 'm', '5500') insert into salary (id, name, sex, salary) values ('4', 'D', 'f', '500') |
create table if not exists salary(id int, name varchar(100), sex char(1), salary int)
Truncate table salary
insert into salary (id, name, sex, salary) values ('1', 'A', 'm', '2500')
insert into salary (id, name, sex, salary) values ('2', 'B', 'f', '1500')
insert into salary (id, name, sex, salary) values ('3', 'C', 'm', '5500')
insert into salary (id, name, sex, salary) values ('4', 'D', 'f', '500')This can be solved using three method: the IF, and the case statement in MySQL database.
SQL If Statement to Swap
IF function takes three parameters in MYSQL, the boolean condition, and the expression when boolean is evaluated to true, and the third is the expression when boolean expression is evaluated to false.
1 | UPDATE salary SET sex = IF(sex='m','f','m'); |
UPDATE salary SET sex = IF(sex='m','f','m');
SQL Case Statement to Swap
The case statment is a bit like switch in modern programming languages such as C++. You can have multiple WHEN (corresponds to case) statements and one ELSE (default) in MySQL.
1 2 3 4 5 6 | UPDATE salary SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END; |
UPDATE salary
SET
sex = CASE sex
WHEN 'm' THEN 'f'
ELSE 'm'
END;–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:How to Compute the Number of Equivalent Domino Pairs? Stay In The Loop: Google Will Make Sure You Never Miss A Mention 5 Ways to Get More Passive Income for your Blog 4 Useful Website Building Tips for the Rookie Blogger Do You Know How To Keep Your WordPress Site Safe? Blogger Disgraced After Making Profits Off Of Cancer Scam 5 Incredibly Powerful Ways to Improve Your Blog Writing Must-Read Books For Freelancing Success Do You Know The Top Web Hosting and SEO Trends For 2016? 8 Ways Bloggers Can Make Money on the Side
- 评论列表
-
- 添加评论