mySQL中case when 用法
时间: 2023-06-28 15:13:29 浏览: 103
在 MySQL 中,CASE WHEN 是一种条件表达式,用于根据给定的条件返回不同的值。
语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
```
其中,`condition1`、`condition2`、...、`conditionN` 是条件,`result1`、`result2`、...、`resultN` 是对应的结果,`ELSE` 子句是可选的,表示如果所有条件都不满足,则返回 `result`。
例如,下面的语句将根据 `score` 的值返回不同的等级:
```
SELECT
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS grade
FROM
students;
```
在这个例子中,如果 `score` 大于等于 90,则返回 'A',如果大于等于 80,则返回 'B',以此类推。如果 `score` 不满足任何条件,则返回 'D'。
相关问题
mysql中case when用法
在MySQL中,CASE WHEN语句用于根据条件执行不同的操作。它可以在SELECT语句中使用,用于根据特定条件对结果进行转换或分类。
下面是一个示例,演示了如何使用CASE WHEN语句将表一转换为表二的显示格式:
第一步:
```
SELECT class_id,
(CASE WHEN grade = 'primary' THEN rate ELSE 0 END) AS 'primary',
(CASE WHEN grade = 'middle' THEN rate ELSE 0 END) AS 'middle',
(CASE WHEN grade = 'high' THEN rate ELSE 0 END) AS 'high'
FROM mst_class;
```
这个查询将根据grade的值,将相应的rate值放入primary、middle或high列中。如果grade的值不符合任何一个条件,那么对应的列将显示0。
关于数据库中的性别字段,通常会使用0表示女性,1表示男性。如果你想将其转换为汉字显示,可以使用CASE WHEN语句来实现。例如,可以使用如下的查询语句来实现性别字段的转换:
```
SELECT user_id, name,
CASE WHEN gender = 0 THEN '女' WHEN gender = 1 THEN '男' ELSE '未知' END AS gender
FROM users;
```
这个查询将根据gender字段的值,返回对应的汉字表示。如果gender的值既不是0也不是1,那么将返回'未知'。
通过使用CASE WHEN语句,你可以根据特定条件对数据进行转换和分类,使查询结果更符合需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [mysql中case when的用法](https://blog.csdn.net/u010147215/article/details/124529659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
mysql select case when用法
MySQL中的SELECT CASE WHEN语句可以根据条件返回不同的值。它的语法如下:
```
SELECT
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
FROM table_name;
```
其中,expression是要比较的表达式,value1、value2等是expression可能的取值,result1、result2等是对应的返回结果,default_result是当expression不等于任何value时的默认返回结果。
此外,根据引用所述,一旦满足了某一个WHEN,这一条数据就会退出CASE WHEN,而不再考虑其他CASE。
举个例子,假设有一个学生成绩表,我们想根据成绩返回不同的等级,可以使用以下语句:
```
SELECT
name,
score,
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;
```
以上语句会返回每个学生的姓名、成绩和对应的等级。
阅读全文