case when 查询
时间: 2024-12-25 09:20:12 浏览: 1
SqlServer使用 case when 解决多条件模糊查询问题
### SQL CASE WHEN 语句概述
SQL中的`CASE WHEN`语句提供了一种方式来执行条件逻辑,类似于编程语言中的if-else结构。这使得数据查询可以根据不同的条件返回不同结果,增强了SQL查询的能力和灵活性。
### 简单 CASE WHEN 语句
对于简单的`CASE WHEN`语句而言,其基本形式如下:
```sql
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
这种形式适用于当测试列与多个可能值匹配的情况,并且每个匹配都有相应的输出[^1]。
### 条件表达式函数
更复杂的场景下,则会使用带有条件表达式的`CASE WHEN`语句,它允许指定任意布尔表达式作为判断依据:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
这种方式提供了更大的灵活性,因为可以基于任何有效的SQL表达式来进行决策[^2]。
### 实际应用场景举例
考虑一个学生成绩表的例子,在这个例子中,分数被转换成等级描述:“优”,“良”,“中”。如果成绩不在给定范围内,默认标记为“不及格”。
```sql
SELECT student_id,
score,
CASE
WHEN score >= 90 THEN '优'
WHEN score BETWEEN 80 AND 89 THEN '良'
WHEN score BETWEEN 70 AND 79 THEN '中'
ELSE '不及格'
END AS grade_description
FROM scores;
```
此查询将根据学生的得分给出对应的中文评价说明[^3]。
阅读全文