首页 > 技术文章 > mysql流程控制函数

enoch-m 2020-03-22 09:58 原文

#流程控制函数
#if函数: if else 的效果
SELECT IF(10>5,'大','小')
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'无','有') 备注 FROM employees;

#case函数 switch case的效果
#when 常量1 then 要显示的值1或语句1
#when 常量2 then 要显示的值2或语句2
/*
查询员工工资,要求
部门号=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函数的使用2:类似于多重if
/*
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 工资级别
FROM employees;

推荐阅读