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.Example:
Table: Salary| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B | f | 1500 || 3 | C | m | 5500 || 4 | D | f | 500 |Output:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | f | 2500 || 2 | B | m | 1500 || 3 | C | f | 5500 || 4 | D | m | 500 |
Approach
Mysql: Using case statement
UPDATE salary sSET sex =CASEWHEN sex='m' THEN 'f'WHEN sex='f' THEN 'm'END;
Mysql: Using IF
UPDATE salary SET sex = IF(sex='m', 'f', 'm');
Oracle: Using case statement
UPDATE salary sSET sex =CASEWHEN sex='m' THEN 'f'WHEN sex='f' THEN 'm'END;
Oracle: Using decode
update salary set sex=decode(sex,'m','f','f','m')
No comments:
Post a Comment