MySQL函数:流程函数

1.IF函数

基本语法:IF(expr1,expr2,expr3)

功能:如果value为true,返回t, 否则返回f

例如:这个里面expr1里面是false,返回的是Error,如果是true,返回OK

select if(false, 'OK', 'Error');

2.IFNULL函数

基本语法:IF(value1, value2),

功能:如果value1不为空,返回value1,否则返回value2

例如:

select IFNULL('OK','Default');  
//这个里面expr1字符串是OK,不为空,返回true,否则返回Default

select IFNULL('','Default')  
//这个里面expr1字符串为空,返回值为空

select IFNULL(null,'Defualt');  
//这个里面expr1的值为null,也就是为NULL, 返回Default

3.case函数

基本语法:case when [val1] then [res1] else [default] end

功能,如果val1为true,返回res1,.....否则返回default默认值

例如:查询表的员工姓名和工作地址(北京/上海---->, 其他 -----> 二线城市)

select
	name as '姓名',
	(case workaddress when '北京'  then  '一线城市'  when  '上海'  then  '一线城市'  else  '二线城市' end) as '工作地址'
from emp;

案例:统计班级各个学员的成绩,展示的规则如下:>= 85, 展示优秀, >= 60,  展示及格,否则,展示不及格。

先创建个表结构,以这个表为例子来做案例

create table score(
	id int comment 'ID',
	name varchar(20) comment '姓名',
	math int comment '数学',
	english int comment '英语',
	chinese int comment '语文'
) comment '学员成绩表';

insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95), (2, 'rose', 23, 66, 90), (3, 'Jack', 56, 98, 76);

解:

select
	id,
	name,
	(case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end) as '数学',
	(case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end) as '英语',
	(case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end) as '语文'
from score;

附一张黑马程序员听课截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值