MySQL函数—流程函数

MySQL函数—流程函数:用于实现条件筛选,从而题搞语句的效率。

MySQL函数—流程函数
函数功能
IF(value,t,f)如果value为true,则返回t,否则返回f
IFNULL(value1,value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN [val1] THEN [res1]...ELSE [default] END如果val1为true,返回res1,...否则返回default默认值
CASE [expr] WHEN [val1] THEN [res1]...ELSE [default] END如果expr的值等于val1,返回res1,...否则返回default默认值

1、IF

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

 select if(true,'ok','Error');

2、IFNULL:第一个val值,必须写null才会输出第二个value。如果是空的字符串,他也会输出第一个value,输出空。

select ifnull('ok','default');
select ifnull('','default');
select ifnull(null,'default');

3、CASE WHEN [val1] THEN [res1],...ELSE [default] END

CASE [expr] WHEN [val1] THEN [res1]...ELSE [default] END

查询emp表的员工姓名和工作地址(北京/上海-------》一线城市,    其他----------》二线城市)

SELECT 
name,
CASE WHEN WORK_ADDRESS='北京' THEN '一线城市' WHEN WORK_ADDRESS='上海' THEN '一线城市' ELSE '二线城市' END '工作地址'
from emp;

SELECT 
name,
CASE WORK_ADDRESS WHEN'北京' THEN '一线城市' WHEN '上海' THEN '一线城市' ELSE '二线城市' END '工作地址'
from emp;

 案例:

统计班级各个成员的成绩,展示规则如下:

------- >=85    优秀

------- >=60   及格

------- 否则    不及格 

CREATE TABLE `score` (
  `id` int DEFAULT NULL COMMENT 'ID',
  `name` varchar(20) DEFAULT NULL COMMENT '姓名',
  `math` int DEFAULT NULL COMMENT '数学',
  `english` int DEFAULT NULL COMMENT '英语',
  `chinese` int DEFAULT NULL COMMENT '语文'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='学员成绩表' 

SELECT
name,
CASE WHEN math >=85 THEN '优秀' WHEN math >=60 THEN '及格' ELSE '不及格' END '数学',
CASE WHEN english >=85 THEN '优秀' WHEN english >=60 THEN '及格' ELSE '不及格' END '英语',
CASE WHEN chinese >=85 THEN '优秀' WHEN chinese >=60 THEN '及格' ELSE '不及格' END '语文'
from score;

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值