1.场景
-
场景:当我们需要将数据库中查询到的字段值,转换成其他值的时候,就需要使用CASE-WHEN函数。
类似:Java中的switch-case语句。
分类:Case具有两种格式。简单Case函数和Case搜索函数。
举例说明:举例的场景是查询name字段,对结果做如下转换:
2.简单Case函数
- 语法说明
case 列名
when 条件值1 then 选择项1
when 条件值2 then 选项2.......
else 默认值
end
场景:简答查询结果转化
(1)'GEM': '邓紫棋'
(2)'JAY': '周杰伦'
(3)'allen716': '艾伦'
(4)其余:'NICK'
SQL语句
SELECT
CASE name
WHEN 'GEM' THEN '邓紫棋'
WHEN 'JAY' THEN '周杰伦'
WHEN 'allen716' THEN '艾伦'
ELSE 'NICK'
END t_name <!--把查询出的列名转成:t_name-->
FROM user;
3.Case搜索函数
- 语法说明
case when 列名 = 条件值1 then 选项1 when 列名 = 条件值2 then 选项2....... else 默认值 end
-
场景说明
更新员工表中的工资,不同等级的员工,工资乘以不同的系数
(1)等级:1 --- 工资系数:1.8
(2)等级:2 --- 工资系数:1.5
(3)等级:3 --- 工资系数:1.2
(4)默认 --- 工资系数:1.1 -
SQL语句
更新
UPDATE employee
SET salary =
CASE
WHEN level = '1' THEN salary * 1.8
WHEN level = '2' THEN salary * 1.5
WHEN level = '3' THEN salary * 1.2
ELSE salary * 1.1
END