- 题目描述:
给定以下Salary表,用一个更新查询和没有中间临时表的情况下把Sex列中的f,m互换。
在运行查询语句后,应得到下图结果:
- 题目解答:
利用case ..when语句
CASE 具有两种格式:
简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。格式如下:
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
CASE 搜索函数计算一组布尔表达式以确定结果。格式如下:
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
那么本题的sql语句为以下结果:
UPDATE salary
SET sex = CASE sex
WHEN 'm' THEN 'f'
ELSE 'm'
END;