mysql select case when用法
时间: 2023-11-15 22:03:37 浏览: 180
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;
```
以上语句会返回每个学生的姓名、成绩和对应的等级。
相关问题
mysql中case when 用法
### MySQL 中 CASE WHEN 语句详解
#### 基本语法介绍
在 SQL 查询中,`CASE WHEN` 是一种用于处理复杂条件逻辑的强大工具,在 MySQL 数据库环境中尤为有用。此结构支持两种主要形式:
- **简单 CASE 表达式**:适用于直接比较字段值的情况。
```sql
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
- **搜索条件 CASE 表达式**:允许通过更灵活的布尔表达式来定义条件。
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
这两种方式都能有效地替代传统的 `IF...ELSE` 结构,提供更加简洁明了的代码风格[^1]。
#### 实际应用场景举例
为了更好地理解如何运用这些概念,下面给出几个具体的例子说明不同场景下的使用方法。
##### 场景一:性别转换
假设有一个存储用户信息的数据表,其中包含表示性别的数值型字段(如 'sex'),可以利用简单的 CASE 表达式将其映射为人可读的文字描述。
```sql
SELECT name,
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END AS gender_description
FROM users;
```
这段代码会根据用户的性别编码返回相应的中文解释[^3]。
##### 场景二:状态消息定制化展示
对于记录系统任务执行情况的任务调度器日志表来说,可能需要根据不同状态码显示特定的消息给前端界面。这时可以通过带有多个 WHEN 子句的形式完成这一需求。
```sql
SELECT task_id,
state_code,
CASE
WHEN state_code = '0' THEN '待处理'
WHEN state_code = '1' THEN '正在运行'
WHEN state_code = '2' THEN '已完成'
ELSE '未知状态'
END AS status_message
FROM sys_scheduler;
```
这里展示了依据具体的状态码生成对应文字提示的过程[^4]。
##### 场景三:数据迁移过程中的单位转换
当涉及到跨平台或版本间的数据同步时,可能会遇到某些属性名称或取值范围不一致的问题。比如在一个项目里要将旧系统的样本容量单位统一调整到新标准下,则可通过如下方式实现批量更新操作。
```sql
INSERT INTO new_sample_type (
ID, Code, Name, SampleUnitId, MinCapacity, AggregateMinCapacity,
DefaultQuantity, WarningDays, FreezeThawTimes, Icon, IsEnable
)
SELECT
id, sampleTypeNo, sampleTypeName,
CASE unit
WHEN '毫升' THEN 3
WHEN '微升' THEN 4
ELSE 1
END as converted_unit_id,
minCapacity, totalMinCapacity, defaultCapacity, preWarningDays,
maxFreezeCount, 'icon-blood', isEffective
FROM old_system.sample_types;
```
上述实例不仅解决了单位差异带来的兼容性难题,同时也提高了后续维护工作的效率[^5]。
mysql select case when
你可以使用 CASE WHEN 语句来在 MySQL 中进行条件选择。这个语句通常与 SELECT 语句一起使用,可以根据不同的条件返回不同的结果。下面是一个示例:
```sql
SELECT column1, column2,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END AS result
FROM your_table;
```
在这个示例中,你需要将 `column1` 和 `column2` 替换为你想要选择的列,`your_table` 替换为你要查询的表名。 `condition1` 和 `condition2` 是你的条件,`result1`、`result2` 和 `result3` 是根据条件返回的结果。
希望这可以帮助到你!如果你有其他问题,请随时提问。
阅读全文
相关推荐
















