case when and else
时间: 2024-10-08 21:08:50 浏览: 17
在SQL中,`CASE WHEN` 结构是一种条件表达式,用于根据特定条件返回不同的值。它允许你在查询结果集中根据某个条件对数据进行分段处理。基本语法如下:
```sql
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[ ELSE default_result ]
END
```
在这个结构里,`condition_1` 和 `condition_2` 是布尔表达式,如果它们为真,则分别返回相应的 `result_1` 或 `result_2`。如果所有条件都不满足,可以包含一个 `ELSE` 子句,指定当所有条件都不成立时返回的默认结果。
例如,如果你有一个订单表,你想根据订单状态返回不同的描述:
```sql
SELECT
order_id,
CASE
WHEN status = 'Completed' THEN '已完成'
WHEN status = 'Cancelled' THEN '已取消'
ELSE '待处理'
END AS order_status_description
FROM orders;
```
在这个例子中,如果订单状态是'Completed',则显示'已完成',如果是'Cancelled',显示'已取消',其他状态则显示'待处理'。
相关问题
mysql case when else_MySQL 函数 - case when then else end
MySQL中的CASE函数可以在查询语句中根据条件值来返回不同的结果。它的语法格式如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,`condition`是一个条件表达式,如果满足该条件表达式则返回对应的`result`,否则继续判断下一个`condition`,如果所有`condition`都不满足,则返回`default_result`。
例如,假设我们有一个学生成绩表,包含学生姓名和成绩,我们可以使用`CASE`函数来将成绩转换为对应的等级:
```
SELECT
name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM
student_scores;
```
在上面的例子中,如果成绩大于等于90,则返回A,否则继续判断下一个条件,以此类推。最后,如果所有条件都不满足,则返回F。
case when then else else后面
case when then else语句中的else后面可以跟一个默认值,当所有的when条件都不满足时,就会返回这个默认值。如果没有指定默认值,则会返回null。例如,以下语句将根据不同的销售额级别返回不同的奖金,如果销售额不在任何级别内,则返回默认值0:
```
select case
when sales > 100000 then 10000
when sales > 50000 then 5000
when sales > 10000 then 1000
else 0
end as bonus
from sales_table;
```
阅读全文