mysql case when 多个条件区间
时间: 2023-10-13 22:13:06 浏览: 64
如果你需要在 MySQL 中使用 `CASE WHEN` 来处理多个条件区间,可以使用下面这种语法:
```
SELECT
col1,
col2,
CASE
WHEN col3 BETWEEN 0 AND 10 THEN '0~10'
WHEN col3 BETWEEN 11 AND 20 THEN '11~20'
WHEN col3 BETWEEN 21 AND 30 THEN '21~30'
ELSE '其他'
END AS col4
FROM
table_name;
```
以上语法中,`col3` 列的值会被判断在哪个条件区间中,然后返回对应的字符串值。如果不在任何条件区间内,则返回 '其他'。你可以根据实际情况修改条件区间和返回值。
相关问题
mysql的switch case语句
MySQL提供了一个替代的条件语句CASE,用于实现多分支的判断和输出。CASE语句有两种使用方式。第一种方式类似于switch语句,用于实现等值判断。语法如下:
```
CASE 变量或表达式
WHEN 值1 THEN 语句1
WHEN 值2 THEN 语句2
...
ELSE 语句n
END
```
第二种方式类似于多重if语句,用于实现区间判断。语法如下:
```
CASE
WHEN 条件1 THEN 语句1
WHEN 条件2 THEN 语句2
...
ELSE 语句n
END
```
在MySQL中,可以使用CASE语句来进行多分支的判断和输出。例如,可以使用CASE语句将某个字段的值转换为对应的描述。具体的写法可以参考以下示例:
```
SELECT id, user_id, username, (CASE status WHEN 0 THEN '正常' WHEN 1 THEN '删除' ELSE '无效' END) status_desc FROM db_monkey_run.tb_sys_user;
```
或者:
```
SELECT id, user_id, username, (CASE WHEN status = 0 THEN '正常' WHEN status = 1 THEN '删除' ELSE '无效' END) status_desc FROM db_monkey_run.tb_sys_user;
```
这样可以根据status字段的值来输出对应的描述信息。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [MySQL CASE语句](https://blog.csdn.net/weixin_49435563/article/details/124827385)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【大数据系列之MySQL】(十九):MySQL中case语句使用方法](https://blog.csdn.net/m0_47256162/article/details/128356860)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [MySQL操作:分支选择switch-case](https://blog.csdn.net/Xin_101/article/details/119830095)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
mysql 按区间分组
您好!如果您要按照区间进行分组,可以使用 MySQL 的 CASE WHEN 语句。以下是一个示例查询,将 sales 表按照销售额分成多个区间并计算每个区间的销售总额:
```
SELECT
CASE
WHEN sales >= 0 AND sales <= 1000 THEN '0-1000'
WHEN sales > 1000 AND sales <= 5000 THEN '1001-5000'
WHEN sales > 5000 AND sales <= 10000 THEN '5001-10000'
ELSE '10001+'
END AS sales_range,
SUM(sales) AS total_sales
FROM
sales
GROUP BY
sales_range;
```
在上面的查询中,我们使用 CASE WHEN 语句将销售额分成四个区间,并给每个区间命名。然后,我们使用 GROUP BY 语句按照 sales_range 列进行分组,并计算每个组的销售总额。
希望对您有所帮助!
阅读全文