使用单个sql查询交换多个字段

时间:2017-07-13 18:56:33

标签: sql

我有一个表薪水,看起来像下面那个,有m =男性和f =女性值。我想用单个更新查询交换所有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    |

我的代码目前看起来像这样:

UPDATE salary
SET sex = 'm'
WHERE sex = 'f' 
AND SET sex = 'f'
WHERE sex = 'm' ;

任何人都可以看到我的查询出错了吗?

1 个答案:

答案 0 :(得分:0)

你可以这样做

UPDATE  @table
SET     [Sex] = CASE [Sex]
                  WHEN 'm' THEN 'f'
                  WHEN 'f' THEN 'm'
                END;