50_流程控制函数-case结构
case函数的使用一:switch case 的效果
/*
java中
switch(变量或表达式){
case 常量1:语句1:break;
...
default:语句n;break;
}
mysql中
case 要判断的字段或表达式 #将switch替换成case
when 常量1 then 要显示的值1或语句1; #将case替换成when,将:替换成then
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n; #else替换为default,表示默认情况
end #判断的是值
*/
/*案列:查询员工的工资,要求:
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
部门号=50,显示的工资为1.3倍
其他部门,显示的工资为原工资
*/
select salary 原始工资,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;
case函数的使用二:类似于 多重if
/*
java中:
if(条件1){
语句 1;
}else if(条件二){
语句2:
}
...
else{
语句n;
}
mysql中:
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end #判断的是区间
*/
#案列:查询员工的工资情况
如果工资>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 grade
from employees;
总结:case一般要搭配着查询来用,即:要放在关键字select后面,相当于一个表达式
推荐阅读
-
linux shell流程控制语句实例讲解(if、for、while、case语句实例)
-
java 学习笔记(入门篇)_程序流程控制结构和方法
-
JS基础-语法+流程控制语句+函数+内置对象【数组】
-
linux shell流程控制语句实例讲解(if、for、while、case语句实例)
-
python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)
-
mysql的学习(七)-自定义函数和流程控制
-
Mysql-自带的一些功能,基本用法(视图,触发器,事务,存储过程,函数,流程控制)
-
Go基础系列:流程控制结构
-
9. Go 语言流程控制:switch-case
-
Go语言中的流程控制结构和函数详解