<!–
MySQL中的Case语句
在MySQL中,Case语句是一种流程控制语句,可以根据条件执行不同的语句块。它可以使用在查询和更新语句中。
阅读更多:
Case语句的常见格式
CASE expression
WHEN value_1 THEN result_1
WHEN value_2 THEN result_2
...
WHEN value_N THEN result_N
ELSE default_result
END
其中,expression指定要比较的表达式,value_i指定表达式可能的取值,result_i是在value_i匹配时返回的结果,default_result是当没有任何表达式匹配时返回的结果。
(adsbygoogle = window.adsbygoogle || []).push({});
示例
假如我们有一张学生表,其中包含学生的姓名和分数:
姓名 | 分数 |
---|---|
Alice | 75 |
Bob | 82 |
Carol | 68 |
David | 92 |
Emily | 55 |
我们可以使用Case语句,将分数按照分段分类:
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN ''
WHEN score >= 60 THEN 'D'
ELSE 'E'
END AS grade
FROM students;
输出结果:
姓名 | 等级 |
---|---|
Alice | |
Bob | B |
Carol | D |
David | A |
Emily | E |
Case语句在更新语句中的应用
Case语句也可以使用在更新语句中,假设我们要将分数大于等于80的学生加10分,并将分数小于80的学生加5分,可以这样写:
UPDATE students
SET score =
CASE
WHEN score >= 80 THEN score + 10
ELSE score + 5
END;
这样,我们就可以有效率地更新学生的成绩。
总结
Case语句是在MySQL中常用的流程控制语句,可以根据条件执行不同的语句块。我们可以使用它在查询语句中分类,也可以在更新语句中更新数据。通过使用这个特性,我们可以更好地管理数据,并且减少出错的可能性。
(adsbygoogle = window.adsbygoogle || []).push({});