MySQ中if和case

2021-04-09  本文已影响0人  弦好想断

四、流程控制函数

1、IF函 数
SELECT IE (100>9, '好', '坏') ;

需求:如果有奖金,则显示最终奖金,如果没有,则显示0

SELECT IF (comnission_pct IS NULL, 0, salary*12*commission_pct)奖金, commission_ pct
FROM employees;

2、CASE函数
情况1 :类似于switch语句,可以实现等值判断
CASE 表达式
WHEN值1 THEN结果1
WHEN值2 THEN结果2
ELSE结果n
END
案例:
部门编号是30,工资显示为2倍
部门编号是50,工资显示为3倍
部门编号是60,工资显示为4倍
否则不变
显示部门编号,新工资,旧工资

SELECT department_id, salary, 
case department_id 
when 30 then salary*2 
when 50 then salary*3
when 60 then salary*4
else salary
end 
newsalary
from employees;

②情况2:类似于多重IF语句,实现区间判断

CASE
WHEN 条件1 THEN结果1
WHEN 条件2 THEN结果2
ELSE结果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 newgrade
from employees;
上一篇 下一篇

猜你喜欢

热点阅读