跳到主要内容

627.变更性别

序号题目难度
627题目链接简单

题目大意​

请你编写一个解决方案来交换所有的 f 和 m (即,将所有 f 变为 m ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。

注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。

Salary 表:

Column NameType
idint
namevarchar
sexENUM
salaryint

id 是这个表的主键(具有唯一值的列)。 sex 这一列的值是 ENUM 类型,只能从 ('m', 'f') 中取。 本表包含公司雇员的信息。

示例​

输入​

Salary 表:

idnamesexsalary
1Am2500
2Bf1500
3Cm5500
4Df500

输出​

idnamesexsalary
1Af2500
2Bm1500
3Cf5500
4Dm500

解释​

(1, A) 和 (3, C) 从 'm' 变为 'f' 。 (2, B) 和 (4, D) 从 'f' 变为 'm' 。

参考答案​

update salary
set sex = (
case sex
when 'm' then 'f'
when 'f' then 'm'
end
);