mysql select case
http://www.forasp.cn/ 2023/3/25 17:05:07 点击:不统计
http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E
在使用 mysql时,发现有和php一样的select case 语法,今天学习一下。
mysql select case 有两种用法,一种是 值判断,一种是条件判断,我么通过实际案例表示
我们假定 以学生分数判断为例子,有下面一个表:
student_score表 以及内容
+------+--------+------------+-------+
| id | name | class_name | score |
+------+--------+------------+-------+
| 1 | 张三 | 数学 | 70 |
| 2 | 李四 | 语文 | 81 |
| 3 | 王武 | 数学 | 98 |
| 4 | 张三 | 语文 | 56 |
+------+--------+------------+-------+
我么先看第一种查询 值判断 select case方式,直接看sql语句:
select *
,CASE score
when 98 THEN "优秀"
when 70 THEN "可以"
when 81 THEN "良好"
when 56 THEN "不及格"
ELSE '其他'
END "评价"
from stuedent_score;
运行结果如下:
+------+--------+------------+-------+-----------+
| id | name | class_name | score | 评价 |
+------+--------+------------+-------+-----------+
| 1 | 张三 | 数学 | 70 | 可以 |
| 2 | 李四 | 语文 | 81 | 良好 |
| 3 | 王武 | 数学 | 98 | 优秀 |
| 4 | 张三 | 语文 | 56 | 不及格 |
+------+--------+------------+-------+-----------+
说明一下,这里直接拿 字段的值做为判读条件,输出对应的内容,如果是字符串 则需要加''引号 引起来,ELSE 里面的其他没有值,则无输出
END 后面的为命名的列名称
我们看第二种条件判断形式的select case mysql判断,直接看sql 如下:
select *
,CASE
when score>90 THEN "优秀"
when score>80 THEN "良好"
when score>70 THEN "可以"
when score<60 THEN "不及格"
ELSE "其他"
END "评价"
from stuedent_score
输出结果:
+------+--------+------------+-------+-----------+
| id | name | class_name | score | 评价 |
+------+--------+------------+-------+-----------+
| 1 | 张三 | 数学 | 70 | 其他 |
| 2 | 李四 | 语文 | 81 | 良好 |
| 3 | 王武 | 数学 | 98 | 优秀 |
| 4 | 张三 | 语文 | 56 | 不及格 |
+------+--------+------------+-------+-----------+
说明一下 ,这里是通过字段大小判断来进行的。需要注意的是,如果为Null 则通过 when score IS NULL THEN "是Null" 进行判断。
以上就是两种mysql select case的使用方法
学习www.网for站asp制.cn作