`CASE WHEN THEN ELSE END` 是 SQL 语言中的一种条件表达式,用于在查询中进行条件判断并返回相应的值。以下是其常见的用法和示例:
基本语法:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
其中,`WHEN` 后面跟着的是条件判断,如果满足条件,则返回相应的结果 `THEN` 后面的值。如果没有任何条件被满足,则执行 `ELSE` 后面的结果。如果没有提供 `ELSE` 子句,并且没有条件被满足,那么整个表达式将返回 `NULL`。
示例:
假设有一个名为 `students` 的表,其中包含学生的分数和姓名。你想根据分数来给学生分类,例如:分数大于或等于 90 分的为 "优秀",分数在 80 到 89 之间的为 "良好",其他为 "一般"。可以使用以下查询来实现这个目的:
```sql
SELECT name, score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
ELSE '一般'
END AS grade_level
FROM students;
```
在上面的查询中,根据 `score` 的值进行条件判断,返回相应的等级字符串("优秀","良好" 或 "一般")并为其设置别名 `grade_level`。如果某个学生的分数在两个条件之间(例如 85 分),那么会按照第一个满足的条件返回结果("良好")。如果分数不满足任何条件,那么返回 "一般"。这就是 `CASE WHEN THEN ELSE END` 的基本用法。