2025年MySQL 必会四大函数-条件函数

MySQL 必会四大函数-条件函数一 CASE WHEN 简单 case 函数 CASE 测试表达式 WHEN 简单表达式 1 THEN 结果表达式 1 WHEN 简单表达式 2 THEN 结果表达式 2 WHEN 简单表达式 n THEN 结果表达式 n ELSE 结果表达式 n 1 END 例子 SELECT name CASE sex WHEN 0 THEN

大家好,我是讯享网,很高兴认识大家。

一、CASE WHEN

简单case函数

CASE 测试表达式 WHEN 简单表达式1 THEN 结果表达式1 WHEN 简单表达式2 THEN 结果表达式2 … WHEN 简单表达式n THEN 结果表达式n [ ELSE 结果表达式n+1 ] END

讯享网

例子: 


讯享网

讯享网SELECT name,(CASE sex WHEN 0 THEN '女' ELSE '男' END) sex FROM score

结果: 

 

 条件case函数

CASE WHEN 布尔表达式1 THEN 结果表达式1 WHEN 布尔表达式2 THEN 结果表达式2 … WHEN 布尔表达式n THEN 结果表达式n [ ELSE 结果表达式n+1 ] END

例子:根据上图 

讯享网SELECT name,score,(CASE WHEN score>=90 THEN '优秀' WHEN score>=80 THEN '良好' WHEN score>=60 THEN '及格' ELSE '不及格' END) level FROM score

结果:

 

 使用场景:

存在下表

 

先需要将其变换为下表形式

 可以使用以下方式

select name, max(case when course='语文' then score else 0 end) as '语文', max(case when course='数学' then score else 0 end) as '数学', max(case when course='英语' then score else 0 end) as '英语', avg(score) as ‘平均成绩’ from test group by name 

二、 IF

F函数也能通过判断条件来返回特定值,它的语法如下:

讯享网IF(expr,result_true,result_false)

expr是一个条件表达式,如果结果为true,则返回result_true,否则返回result_false。

 例子: 

select name,if (sex=1,'男','女') from test_user

结果: 

可以看出,在一些场景中,IF函数和CASE WHEN是有同样效果的,前者相对简单,后者能应对更复杂的判断。

另外,IF函数还可以和聚合函数结合,例如查询班级男生女生分别有多少人:

讯享网select count(if (sex=1,1,null)) '男生人数', count(if (sex=0,1,null)) '女生人数' from test_user

 注意 count后面不需要加as 可以直接设置别名


三、IFNULL

在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发一些意外情况的。

因此,我们希望在SQL中做一些处理,如果查询结果是null,就转换为特定的值,这就要用到Mysql中IFNULL函数。

IFNULL(name,0)

当name字段值为空时会被替换为0

小讯
上一篇 2025-03-21 18:47
下一篇 2025-03-17 11:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10980.html