MySQL----case的用法

MySQLCASE表达式详解✨

`CASE`是MySQL中非常实用的条件表达式,它允许我们在SQL查询中进行条件判断和分支处理,类似于编程语言中的`if-else`或`switch-case`语句。下面让我们深入了解它的用法吧!🚀

基本语法结构

MySQL支持两种形式的`CASE`表达式:

1.简单CASE表达式

```sql
CASE列名或表达式
WHEN值1THEN结果1
WHEN值2THEN结果2
...
ELSE默认结果
END
```

2.搜索CASE表达式

```sql
CASE
WHEN条件1THEN结果1
WHEN条件2THEN结果2
...
ELSE默认结果
END
```

实际应用示例🌟

示例1:简单评级系统

```sql
SELECT
student_name,
score,
CASE
WHENscore>=90THEN'A'
WHENscore>=80THEN'B'
WHENscore>=70THEN'C'
WHENscore>=60THEN'D'
ELSE'F'
ENDASgrade
FROMstudents;
```

示例2:订单状态转换

```sql
SELECT
order_id,
status_code,
CASEstatus_code
WHEN1THEN'待付款'
WHEN2THEN'已付款'
WHEN3THEN'已发货'
WHEN4THEN'已完成'
WHEN5THEN'已取消'
ELSE'未知状态'
ENDASstatus_text
FROMorders;
```

示例3:在UPDATE语句中使用

```sql
UPDATEproducts
SETprice=CASE
WHENcategory='电子产品'THENprice0.9--电子产品打9折
WHENcategory='食品'THENprice1.05--食品涨价5%
ELSEprice--其他保持不变
END;
```

高级用法💡

在聚合函数中使用CASE

```sql
SELECT
department,
COUNT()AStotal_employees,
SUM(CASEWHENgender='M'THEN1ELSE0END)ASmale_count,
SUM(CASEWHENgender='F'THEN1ELSE0END)ASfemale_count
FROMemployees
GROUPBYdepartment;
```

在ORDERBY子句中使用

```sql
SELECTFROMtasks
ORDERBY
CASEpriority
WHEN'高'THEN1
WHEN'中'THEN2
WHEN'低'THEN3
ELSE4
END;
```

注意事项⚠️

1.`CASE`表达式会按顺序评估条件,第一个满足的条件会被执行,后续条件将被忽略
2.如果没有条件满足且没有`ELSE`子句,结果将为`NULL`
3.所有`THEN`子句的结果数据类型应该兼容

`CASE`表达式是SQL查询中非常强大的工具,合理使用可以让你的查询更加灵活和高效!🎯下次写SQL时不妨试试看吧!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值