MySQL写个case when的SQL
时间: 2024-07-17 10:00:57 浏览: 134
MySQL中的`CASE WHEN`语句是一个条件表达式,用于根据给定的条件执行不同的操作并返回结果。它的基本语法结构如下:
```sql
SELECT
CASE
WHEN condition_1 THEN result_1
[WHEN condition_2 THEN result_2]
[...]
ELSE default_result
END
FROM table_name;
```
这里,`condition_i`是你想要检查的每个条件,如果该条件为真(非NULL),对应的`result_i`就会被选择并返回。如果所有`WHEN`都不满足,则会执行`ELSE`部分定义的结果,如果没有`ELSE`,当没有匹配条件时,通常返回NULL。
例如,如果你想计算学生的成绩等级,你可以这样做:
```sql
SELECT
id,
case
when grade > 90 then 'A'
when grade BETWEEN 80 AND 90 then 'B'
when grade BETWEEN 70 AND 80 then 'C'
when grade BETWEEN 60 AND 70 then 'D'
else 'F'
end as letter_grade
FROM students;
```
这将根据学生成绩分配字母等级。
相关问题
mysql sql语句 case when
MySQL 中的 `CASE WHEN` 是一个条件表达式,它用于根据指定的条件返回不同的值。这个语句结构通常用于 `SELECT` 语句中,对查询结果进行条件判断和分组处理。基本语法如下:
```sql
CASE
WHEN condition THEN result_1
[WHEN condition THEN result_2]
...
ELSE default_result
END as column_name
```
这里的 `condition` 是需要检查的布尔表达式,如果该条件成立,就返回 `result_1`;如果没有匹配到的 `WHEN` 条件,就会执行 `ELSE` 子句给出的默认结果。
例如,假设有一个表 `sales`,我们想计算每个员工的销售金额,如果达到目标则标记为 "达标",否则为 "未达标":
```sql
SELECT
employee_id,
SUM(sales_amount) as total_sales,
CASE
WHEN total_sales >= target_sales THEN '达标'
ELSE '未达标'
END as sales_status
FROM
sales
GROUP BY
employee_id;
```
mysql sql的case when 写法
MySQL SQL中的CASE WHEN语句是一种条件表达式,它可以根据条件返回不同的值。CASE WHEN语句有两种写法,一种是当字段值为枚举类型时,另一种是当字段值不是枚举类型时,而是根据一定的条件进行处理。下面分别介绍这两种写法:
1. 当字段值为枚举类型时,CASE WHEN语句的写法如下:
CASE 字段名
WHEN 枚举值1 THEN 返回值1
WHEN 枚举值2 THEN 返回值2
...
ELSE 返回值n
END
例如,当我们有一个性别字段sex,其中0表示男性,1表示女性,2表示未知,我们可以使用以下语句将其转换为中文:
SELECT CASE sex
WHEN 0 THEN '男'
WHEN 1 THEN '女'
ELSE '未知'
END AS '性别'
FROM user;
2. 当字段值不是枚举类型时,而是根据一定的条件进行处理时,CASE WHEN语句的写法如下:
CASE
WHEN 条件1 THEN 返回值1
WHEN 条件2 THEN 返回值2
...
ELSE 返回值n
END
例如,当我们有一个学生成绩表score_info,其中score字段表示学生成绩,我们可以使用以下语句将其转换为成绩等级:
SELECT student_name, score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS '成绩等级'
FROM score_info;
阅读全文