MySQL 条件函数

# 条件函数
# 可以利用条件函数来实现编程语言里的条件判断

# 中秋节公司发放礼品,SALES部门发放礼品A,其余部门发放礼品B,打印每名员工获得的礼品
SELECT e.ename,d.dname,
if(d.dname="SALES","礼品A","礼品B") as "type"
FROM t_emp e JOIN t_dept d on e.deptno = d.deptno;

# 复杂的条件判断可以用条件语句来实现,比IF功能更强大

# 公司年庆决定组织员工集体旅游,每个部门旅游目的地是不同的,
# SALES部门去P1地点,
# ACCOUNTING部门去P2地点,
# R部门去P3地点,
# 查询每名员工去的地方
SELECT e.ename,
	CASE
		WHEN d.dname = "SALES" THEN "P1"
		WHEN d.dname = "ACCOUNTING" THEN "P2"
		WHEN d.dname = "RESEARCH" THEN "P3"
	END as "place"
FROM t_emp e JOIN t_dept d on e.deptno=d.deptno;

# 公司决定为员工调整基本工资,具体方案如下:
# 1.SALES部门中工龄超过20年 增加10%
# 2.SALES部门中工龄不满20年 增加5%
# 3.A部门 增加300
# 4.R部门里低于部门平均底薪 增加200
# 5.没有部门的 增加100
UPDATE t_emp e LEFT JOIN t_dept d on e.deptno=d.deptno
LEFT JOIN (SELECT deptno,avg(sal)as avg FROM t_emp GROUP BY deptno) t
on e.deptno = d.deptno
set e.sal=(
	case
		when d.dname ="SALES" and DATEDIFF(NOW(),hiredate)/365>=20 then e.sal*1.1
		when d.dname ="SALES" and DATEDIFF(NOW(),hiredate)/365<20 then e.sal*1.05
		when d.dname ="ACCOUNTING" then e.sal+300
		when d.dname = "RESEARCH" and e.sal

 

你可能感兴趣的:(MySQL)