SQL 中case when 总结
简单的梳理一下case when 的用法
- 简单Case函数
- Case搜索函数
简单case 函数语法
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
Case搜索函数语法
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
两种方式根据不同的场景进行使用。
实例
测试用的DDL语句
CREATE TABLE `COMMON_INFO` (
`ID` INT (11) NOT NULL AUTO_INCREMENT,
`NAME` CHAR(20) NOT NULL DEFAULT '' COMMENT '名字',
`TYPE` CHAR(10) NOT NULL DEFAULT '' COMMENT '职业类型:1 学生 2 企业职员 3 军人 4 操作人员 5 其他',
`PLACE` VARCHAR (255) NOT NULL DEFAULT '' COMMENT '地区',
PRIMARY KEY (`ID`)
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = UTF8 ;
SQL 语句
insert into `common_info` (`Name`, `Type`, `place`) values('王德卿','2','河南省');
insert into `common_info` (`Name`, `Type`, `place`) values('董炎彦','2','安徽省');
insert into `common_info` (`Name`, `Type`, `place`) values('罗大佑','1','台湾省');
查询SQL
SELECT * FROM COMMON_INFO;
全部记录
id | Name | Type | place |
---|---|---|---|
1 | 王德卿 | 2 | 河南省 |
2 | 董炎彦 | 2 | 安徽省 |
3 | 罗大佑 | 1 | 台湾省 |
简单case 函数
SELECT NAME '姓名',
CASE TYPE
WHEN 2 THEN
'企业职员'
ELSE
'其他'
END '类型枚举值'
FROM COMMON_INFO;
返回记录
姓名 | 类型枚举值 |
---|---|
王德卿 | 企业职员 |
董炎彦 | 企业职员 |
罗大佑 | 其他 |