MySQL 条件函数

由于博客内容为空,推测该博客可能围绕MySQL展开,MySQL是后端开发常用的数据库,可用于数据存储、管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

# 中秋节公司发放礼品,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<t.avg then e.sal+200
		when d.deptno is null then e.sal+100
		else e.sal
	end
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值