4、流程控制函数
一、if 函数
if函数:(实现) if else 的效果
if函数根据条件的结果为true或false,返回第一个值,或第二个值
#案例:
查询员工的姓和奖金,如果奖金为null值,那么备注为“无“;如果奖金不为null值,那么备注为”有”
if函数和case语句的区别:
if 函数 处理双分支
case 语句 处理多分支
二、case函数
case函数的使用一(处理等值判断):switch case 的效果
注:
Java中:
switch(变量或表达式){
case常量值1语句;语句1;break;
………
default:语句n;break;
}
MySQL中:
case 要判断的字段或表达式
when 常量值1 then 要显示的值1或者语句1;
when 常量值2 then 要显示的值2或者语句2;
…….
else 要显示的值n或语句n;
end
注:
若放在select后面,则作为表达式来用
那么 when 后面只能跟要显示的值,不能跟语句!
(存储过程和函数 不搭配select可以直接用case 那么是作为语句)
如:
select……. ,
case 要判断的字段或表达式
when 常量值1 then 要显示的值1
when 常量值2 then 要显示的值2
…….
else 要显示的值n或语句n
end
from……;
#案例: 查询员工的工资,要求
部门号=90,显示的工资为1.1倍
部门号=60,显示的工资为1.2倍
部门号=100,显示的工资为1.3倍
其他部门,显示的工资原工资
case函数的使用二(处理条件/区间判断): 类似于 Java中的多重if(多重if判断的是区间)
注:
Java中:
if(条件1){
语句1;
}else if(条件2){
语句2;
}
………
else{
语句n;
}
MySQL中:
case (注:这里的case,后面不加字段或表达式)
when 条件1 then 要显示的值1或语 句1
when 条件2 then 要显示的值2或语句2
………
else 要显示的值n或语句n
end
#案例:查询员工的工资情况
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示c级别
否则,显示D级别