mysql的case语句
时间: 2023-11-21 11:05:54 浏览: 101
sql中case语句的用法浅谈
5星 · 资源好评率100%
MySQL的CASE语句是一种条件语句,用于根据给定的条件执行不同的操作。它有两种形式:简单CASE语句和可搜索CASE语句。
1. 简单CASE语句
简单CASE语句的语法如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
其中,expression是要比较的表达式,value1、value2等是要比较的值,result1、result2等是对应的结果,default_result是当没有匹配的值时返回的默认结果。
举个例子,假设有一个名为tbl_test_campus的表,其中有一个名为campus_tp的字段,它的值为0或1,分别表示大学和中小幼。我们可以使用简单CASE语句将其转化为具体含义,SQL语句如下:
```
SELECT campus_tp, CASE campus_tp
WHEN "0" THEN "大学"
WHEN "1" THEN "中小幼"
ELSE ""
END AS "校园类别"
FROM tbl_test_campus;
```
上述SQL语句将campus_tp字段的值与0和1进行比较,如果是0则返回“大学”,如果是1则返回“中小幼”,否则返回空字符串。执行结果如下:
```
+-----------+--------------+
| campus_tp | 校园类别 |
+-----------+--------------+
| 0 | 大学 |
| 0 | 大学 |
| 1 | 中小幼 |
| | |
+-----------+--------------+
4 rows in set (0.00 sec)
```
2. 可搜索CASE语句
可搜索CASE语句的语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,condition1、condition2等是要比较的条件,result1、result2等是对应的结果,default_result是当没有匹配的条件时返回的默认结果。
举个例子,假设有一个名为tbl_test_score的表,其中有一个名为score的字段,我们可以使用可搜索CASE语句将其转化为成绩等级,SQL语句如下:
```
SELECT score,
CASE
WHEN score >= 90 THEN "优秀"
WHEN score >= 80 THEN "良好"
WHEN score >= 70 THEN "中等"
WHEN score >= 60 THEN "及格"
ELSE "不及格"
END AS "成绩等级"
FROM tbl_test_score;
```
上述SQL语句将score字段的值与一系列条件进行比较,如果满足条件则返回对应的成绩等级,否则返回“不及格”。执行结果如下:
```
+-------+--------+
| score | 成绩等级 |
+-------+--------+
| 85 | 良好 |
| 92 | 优秀 |
| 68 | 中等 |
| 55 | 不及格 |
+-------+--------+
4 rows in set (0.00 sec)
```
阅读全文