这里我们列举出来mysql中常用到的函数做一个简单的演示,很多函数经常是在嵌套使用,才可以实现需要的功能
本次主要介绍2个函数
- case when…then… else …end
- substr()
用法简介
1. case when
case when的作用是对不同情况的结果进行条件判断,作用类似于Java程序中的case when,可以用来打标签。
case when 有两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
--简单的case函数
case sex
when '1' then '男'
when '2' then '女'
else '其他'
end as 性别
--case搜索函数
case
when sex ='1' then '男'
when sex = '2' then '女'
else '其他'
end as 性别
2. substr()
substr的作用是对于对应字段的内容进行字符串截取
## 简单举例
substr('zhangsan',1,1)
执行结果 ‘z’ 从zhangsan的左边第1位开始,截取长度为1的字符串
substr('zhangsan',2,3)
执行结果 ‘han’ 从zhangsan的左边第2位开始,截取长度为3的字符串
substr('zhangsan',-2,2)
执行结果 ‘an’ 从zhangsan的右边第2位开始,截取长度为2的字符串
实战
-
需求
现在有下面的表格,每个学生的名字最后一位的数字代表的是学生的班级,没有数字的表示四班,需要我们给每个学生的打上班级的标签,并按照班级排序。
比如 zhangsan1 代表一班 lisi2 代表二班
-
思路
这里只是对于我们上面的两个sql函数的简单的结合使用,这种需求非常常见 -
SQL实现
SELECT sid,sname,ssex,
case
when SUBSTR(sname,-1,1) = '1' then '1班'
when SUBSTR(sname,-1,1) = '2' then '2班'
when SUBSTR(sname,-1,1) = '3' then '3班'
else '4班'
end as 'class'
from student ORDER BY class;
- 结果
简单的介绍就说到这里,后面我们在介绍其他函数的时候,会结合现有的函数灵活使用。