在表格中如果我们要给不同分段的成绩评选等级,只需要使用筛选功能输入评定的条件即可。那么在mysql中我们该如何输出跟表格一样结果呢?这里有的小伙伴说可以用我们刚学习的case函数来尝试。但是作为最基础的函数,还无法执行这样复杂的判断条件。不过我们可以用case的条件表达式是实现,接下来我们以成绩等级为例,为大家带来case条件表达式的用法。
CASE的简单函数使用简便,但无法应对较为复杂的场景,这就需要用到条件表达式了,其语法结构如下:
CASE WHEN condition THEN result1 ELSE result2 END
解释一下,语句中的condition是条件判断,如果该判断结果为true,那么CASE语句将返回result,否则返回result2,如果没有ELSE,则返回null。CASE与END之间可以有多个WHEN…THEN…ELSE语句。END表示CASE语句结束。
比如说现在有这么一个成绩表,我们要给成绩划分各等级,60以下打不及格,60-80打及格,80-90打良,90以上打优,我们就能用case when来解决。
请看下面这段代码
select *, case when score<60 then '不及格' when score>=60 and score<80 then '及格' when score>=80 and score<90 then '良好' else '优秀' end as 表现 from sc
以上就是我们用case函数的高级用法所得到的成绩划分,这类判断操作仅用case函数是无法完成的。有想要学习的小伙伴可以根据小编的方法来进行操作。
本文教程操作环境:windows7系统、mysql5.8,DELL G3电脑。