流程控制函数
1. if(表达式1,表达式2,表达式3)
作用:当表达式1满足条件时执行表达式2,否则执行表达式3
输出结果大于
SELECT IF(3>2,'大于','小于');
2. case函数
引入:java中switch-case
switch(变量或表达式){
case 常量1:语句1;
break;
case 常量2:语句2;
break;
…
default 常量n:语句1;
break;
}
Mysql中的case使用一:
CASE 要判断的字段或表达式
WHEN 常量1 THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)
WHEN 常量2 THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)
…
ELSE 常量N THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)
END
举个栗子:
查询员工的工资 要求:
* 部门编号 = 30 ;显示的工资为1.1倍
* 部门编号 = 40 ;显示的工资为1.2倍
* 部门编号 = 50 ;显示的工资为1.3倍
* 部门编号 = 其他 ;显示的工资为原工资
SELECT department_id,salary 原始工资,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 40 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees;
适合等值判断
Mysql中的case使用二:
引入java中的多重if
if(条件1){
语句1;
}else if(条件2){
语句2;
}….
else{
语句n;
}
mysql中:
CASE
WHEN 条件1 THEN 要显示的值1或语句(如果要显示的是语句则末尾处要加分号)
WHEN 条件2 THEN 要显示的值2或语句(如果要显示的是语句则末尾处要加分号)
….
ELSE 要显示的值n或语句(如果要显示的是语句则末尾处要加分号)
END
举个栗子:
查询员工的工资情况 要求:
* 工资级别大于 8000 ;显示 A 级别
* 工资级别大于 5000 ;显示 B 级别
* 工资级别大于 4000 ;显示 C 级别
* 否则显示D级别
SELECT salary,
CASE
WHEN salary > 8000 THEN 'A'
WHEN salary > 5000 THEN 'B'
WHEN salary > 4000 THEN 'C'
ELSE 'D' AS 工资级别
FROM employees;
适合区间判断
未经允许不得转载:天府数据港官方信息博客 » MySQL学习笔记(14)
客官点个赞呗! (0)