首页 > 数据库技术 > 详细

MySQL语句case when then else end

时间:2020-01-02 18:28:23      阅读:79      评论:0      收藏:0      [点我收藏+]

 

一、case 【列名称】 when【条件】 then 【返回值】... else 【返回值】end

1、简单单一条件

SELECT
	CASE o.operate_status
	  WHEN ‘1‘ THEN ‘暂停‘
	  WHEN ‘2‘ THEN ‘启用‘
	  WHEN ‘3‘ THEN ‘失效‘
	  ELSE ‘其他‘ END AS operate_status,
	o.change_reason,
	o.creator_name,
	DATE_FORMAT(o.operate_time, ‘%Y-%m-%d %H:%i‘) AS operate_time
FROM [tablName] AS o
WHERE o.operate_status in (‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘)  

查询效果:

技术分享图片

 

 

 

2、多个条件

SELECT
	CASE o.operate_status
	  WHEN ‘1‘ OR ‘2‘ THEN ‘编制‘
	  WHEN ‘3‘ OR ‘4‘ THEN ‘编制‘
	  WHEN ‘5‘ THEN ‘暂停‘
	  WHEN ‘6‘ THEN ‘启用‘
	  WHEN ‘7‘ THEN ‘失效‘
	  ELSE ‘其他‘ END AS operate_status,
	CASE o.operate_status
	  WHEN ‘1‘ THEN ‘暂存信息‘
	  WHEN ‘2‘ THEN ‘提交‘
	  WHEN ‘3‘ THEN ‘审核通过‘
	  WHEN ‘4‘ THEN ‘审核不通过‘
	  WHEN ‘5‘ THEN ‘暂停‘
	  WHEN ‘6‘ THEN ‘启用‘
	  WHEN ‘7‘ THEN ‘失效‘
	  ELSE ‘其他‘ END AS operate_result,
	o.change_reason,
	o.creator_name,
	DATE_FORMAT(o.operate_time, ‘%Y-%m-%d %H:%i‘) AS operate_time
FROM [tableName] AS o
WHERE o.operate_status in (‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘)

查询效果如下: 

技术分享图片

 

 

二、case [ when 【条件】then【返回值】... else 【返回值】end ]

SELECT 
	CASE 
	  WHEN o.operate_status = ‘1‘ OR o.operate_status = ‘2‘ THEN ‘编制‘
	  WHEN o.operate_status = ‘3‘ OR o.operate_status = ‘4‘ THEN ‘编制‘
	  WHEN o.operate_status = ‘5‘ THEN ‘暂停‘
	  WHEN o.operate_status = ‘6‘ THEN ‘启用‘
	  WHEN o.operate_status = ‘7‘ THEN ‘失效‘
	  ELSE ‘其他‘ END AS operate_status,
	o.change_reason,
	o.creator_name,
	DATE_FORMAT(o.operate_time, ‘%Y-%m-%d %H:%i‘) AS operate_time
FROM [tableName] AS o
WHERE o.operate_status in (‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘);

查询效果如下:

技术分享图片

 

MySQL语句case when then else end

原文:https://www.cnblogs.com/yuchuan/p/mysql_case_when.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!