**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索引
- 副本集
- 聚焦分析
- 事務管理
- 寫關注
- 讀關注