MySql常见函数(case+ifnull)

1. case

1.1 语法结构

CASE expr 
	WHEN comparison_expr1 THEN return_expr1
	WHEN comparison_expr2 THEN return_expr2
	WHEN comparison_exprn THEN return_exprn
	ELSE else_expr
END

1.2 表数据

select * from emp
id emp_name emp_salary emp_level
1 a 10000 0
2 b 11000 1
3 c 9000 2
4 d 10000 2
5 e 13000 3

1.3 使用场景

根据员工等级给员工增加薪水:
	0级员工薪水不变
	1级员工薪水加1500
	2级员工薪水加3000
	3级员工薪水加5000

1.4 sql

SELECT id,emp_name,emp_salary,emp_level,
	CASE emp_level
	WHEN '1' THEN emp_salary+1500
	WHEN '2' THEN emp_salary+3000
	WHEN '3' THEN emp_salary+5000
	ELSE emp_salary
	END
	"emp_newsalary"
FROM emp;

1.5 结果

id emp_name emp_salary emp_level emp_newsalary
1 a 10000 0 10000
2 b 11000 1 12500
3 c 9000 2 12000
4 d 10000 2 13000
5 e 13000 3 18000

2. ifnull()

2.1 语法结构

IFNULL(expression, alt_value)
如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值

2.2 表数据

select * from emp
id emp_name emp_salary emp_level
1 a 10000 0
2 b 11000 null
3 c 9000 2
4 d 10000 null
5 e 13000 3

2.3 使用场景

查询员工等级,如果为null显示为0级

2.4 sql

SELECT 
	id,
	emp_name,
	emp_level,
	IFNULL(emp_level,0) AS emp_newlevel
FROM emp;

2.5 查询结果

id emp_name emp_level emp_newlevel
1 a 0 0
2 b null 0
3 c 2 2
4 d null 0
5 e 3 3
发布了15 篇原创文章 · 获赞 4 · 访问量 722

猜你喜欢

转载自blog.csdn.net/weixin_38938338/article/details/105192089