当前位置:   article > 正文

【大数据系列之MySQL】(十九):MySQL中case语句使用方法_mysql switch case

mysql switch case

MySQL中存在Java语言一样的流程控制函数case,用来控制多分支输出问题,但是具体写法不太一样,case结构在MySQL中定义如下:

1.switch结构

case 要判断的字段或表达式
when 常量1 要显示的值或语句;
when 常量2 要显示的值或语句;
...
else 要显示的值或语句;(相当于default)
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

对于when语句来讲,如果后面的是表达式或者常量值不需要写分号,如果是语句需要在结尾加分号

案例:查询员工的工资,要求如下:

部门号=30,显示的工资为1.1倍

部门号=40,显示的工资为1.2倍

部门号=50,显示的工资为1.3倍

其他部门,显示的工资为原工资

SELECT
	salary AS 原始工资,
	department_id,
CASE
		department_id 
		WHEN 30 THEN
		salary * 1.1 
		WHEN 40 THEN
		salary * 1.2 
		WHEN 50 THEN
		salary * 1.3 ELSE salary 
	END AS 新工资 
FROM
	employees;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

image-20221217200342255

2.实现多分支if

同时case还可以实现if多分支结构,结构如下,和上面的结构不大相同,上面的就是switch结构,下面的是实现多if分支:

case
when 条件1 要显示的值或语句;
when 条件2 要显示的值或语句;
...
else 要显示的值或语句;
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

案例:查询员工的工资的情况

如果工资>20000,显示A级别

如果工资>15000,显示B级别

如果工资>10000,显示C级别

否则,显示D级别

SELECT
	salary,
CASE
		
		WHEN salary > 20000 THEN
		'A' 
		WHEN salary > 15000 THEN
		'B' 
		WHEN salary > 10000 THEN
		'C' ELSE 'D' 
	END AS 工资级别 
FROM
	employees;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

image-20221217201129117

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号