mysql case 语句
时间: 2024-08-13 07:01:06 浏览: 60
MySQL 的 `CASE` 语句是一个非常有用的工具,在查询中用于条件判断并返回相应的值。它可以帮助我们在查询结果中基于特定条件对数据进行选择、计算或处理。
基本语法如下:
```sql
SELECT
CASE WHEN 条件 THEN 结果1 ELSE 结果2 END,
其他列...
FROM 表名;
```
更详细地解释语法各部分含义如下:
- **WHEN** 后面跟的是一个条件表达式。
- **THEN** 关键字紧跟在满足条件后的值或表达式前。
- **END** 标志着 CASE 子句的结束。
可以有多个 `WHEN ... THEN ... END` 对,如果所有的 `WHEN` 都不匹配,则最后的 `ELSE` 分支会被执行。如果没有 `ELSE` 分支,而所有 `WHEN` 条件都不满足,则默认返回 NULL。
下面是一个简单的例子说明如何使用 `CASE` 语句:
假设有一个名为 `students` 的表,包含字段 `grade_level` 和 `course_taken`,你想根据学生是否已经完成了“高等数学”课程(课程名称为 "Advanced Math"),将学生的状态分为“已通过”、“未完成”或“未知”。那么,你可以创建这样的 SQL 查询:
```sql
SELECT
student_id,
grade_level,
CASE
WHEN course_taken = 'Advanced Math' THEN '已通过'
WHEN grade_level > 10 THEN '未完成'
ELSE '未知'
END AS status
FROM students;
```
在这个例子中,“status” 列会显示每个学生的状态,依据他们是否完成了“高等数学”课程以及年级情况。如果某位学生的课程记录中不存在“高等数学”,则状态将显示为 “未知”。
阅读全文