case 表达式中 如果when后有两个值对应同一个then怎么写在一起
时间: 2024-04-16 18:29:26 浏览: 161
在 CASE 表达式中,可以使用逻辑运算符将多个条件组合在一起,然后返回相同的结果。你可以使用逗号将多个值放在一起,表示它们对应同一个结果。
例如:
```
SELECT CASE
WHEN score = 90 OR score = 95 THEN 'A'
WHEN score = 80 OR score = 85 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END as grade
FROM student;
```
在这个例子中,当 score 等于 90 或 95 时,返回 'A';当 score 等于 80 或 85 时,返回 'B';当 score 大于等于 70 时,返回 'C';否则返回 'D'。
使用逻辑运算符 (如 OR、AND、NOT) 可以根据需要组合多个条件,以便在 CASE 表达式中处理多个值对应相同结果的情况。
相关问题
6、自行设计一个多条件查询问题,并使用 CASE 语句去解决,要求 CASE 后面没有任何参数 表达式,在 WHEN 子句后接有比较表达式,更加比较表达式的值,执行相对应的 THEN 后面的 语句。
假设有一个学生成绩表格,包含学生姓名、科目和成绩三个字段,现在想要查询数学成绩大于80分且语文成绩大于70分的学生姓名。
使用 CASE 语句可以如下解决:
```
SELECT
name
FROM
score
WHERE
subject = 'math' AND
CASE
WHEN score >= 80 THEN 1
ELSE 0
END = 1 AND
subject = 'chinese' AND
CASE
WHEN score >= 70 THEN 1
ELSE 0
END = 1;
```
在这里,我们使用了两个 CASE 语句分别判断数学成绩和语文成绩是否达到了要求。如果成绩达到要求,则返回 1,否则返回 0。然后再使用 AND 连接条件,筛选出符合要求的学生姓名。需要注意的是,由于使用了 CASE 语句,这里的 WHERE 子句不能直接使用 score 字段,而是需要在 CASE 语句中进行比较。
case 表达式 when 值1 then 结果1
当使用 CASE 表达式时,可以按照以下语法进行编写:
```sql
CASE 表达式
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
...
ELSE 结果N
END
```
这里的表达式可以是任何条件或列,而值和结果则是根据表达式的结果进行匹配和返回的内容。如果没有满足的条件,可以使用 ELSE 子句来返回默认结果。
阅读全文