**1. 语法**
```sql
# 语法1
CASE case_value WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list]
...
[ELSE statement_list]
END CASE
# 语法2
CASE WHEN condition THEN statement_list
[WHEN condition THEN statement_list]
...
[ELSE statement_list]
END CASE
- case_value:当 case_value = when_value 时,执行 statement_list 语句
- condition:条件成立则执行 statement_list 语句
```
**2. 演示**
```sql
# 1. 准备演示数据
drop table if exists account;
create table account
(
`id` int(11) primary key auto_increment not null,
`username` varchar(255) not null,
`password` varchar(255) not null
);
insert into account values(1, '张三', 'zhangsan');
insert into account values(2, '李四', 'lisi');
# 2. 在存储过程中使用 case 语句
delimiter $
create procedure
proce_account02(in id_ int, in uname varchar(255), in pass varchar(255))
begin
case when id_ = 1 then
update account set username=uname, password=pass;
when id_ = 2 then
delete from account where id=id_;
else
insert into account values(id_, uname, pass);
end case;
end $
# 3. 调用存储过程
call proce_account02(3, '王五', 'wangwu') $
# 4. 查看结果
mysql> select * from account $
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | 张三 | zhangsan |
| 2 | 李四 | lisi |
| 3 | 王五 | wangwu |
+----+----------+----------+
```
**3. 在 select 语句中使用 case 语句**
```sql
select
case when id = 1 then 'one'
when id = 2 then 'two'
when id = 3 then 'three'
end as result,
id,
username
from account;
+--------+----+----------+
| result | id | username |
+--------+----+----------+
| one | 1 | 张三 |
| two | 2 | 李四 |
| three | 3 | 王五 |
+--------+----+----------+
```
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注