`CASE WHEN THEN ELSE END` 是 SQL 语句中常用的条件逻辑表达式。它在 SQL 查询中用于根据特定的条件进行决策和结果的选择。具体结构如下:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
这里的 `condition` 是要测试的条件,`THEN` 后面的 `result` 是当条件为真时返回的结果。你可以有多个 `WHEN` 条件,但只有第一个为真的条件会被执行。如果没有任何条件为真,那么 `ELSE` 后面的 `resultN` 会被返回。如果没有提供 `ELSE` 部分,并且没有条件为真,那么整个 `CASE` 表达式会返回 `NULL`。
举个例子:
假设有一个名为 `students` 的表,其中有一个名为 `score` 的列,你想根据分数将学生分为几个等级:
```sql
SELECT name, score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END as grade
FROM students;
```
这个查询将根据学生的分数将他们分为 'A', 'B', 'C', 或 'D' 等级。如果一个学生的分数是 95,他们将被归为 'A' 级。如果一个学生的分数低于 70,他们将被归为 'D' 级。对于介于这两个值之间的分数,查询将按照上述顺序检查条件并返回相应的等级。