SQL中case when 总结

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;

返回记录

姓名 类型枚举值
王德卿 企业职员
董炎彦 企业职员
罗大佑 其他

猜你喜欢

转载自blog.csdn.net/w5wangdeqing/article/details/80535163