MySQL流程控制语句之case语句

MySQL流程控制语句之case语句

概述

case语句作用在流程控制语句的一种,在开发中经常用到,该语句可以对条件进行判断并且当有条件成立时返回一个值,比如要把SQL查询结果中的1、2、3和4代表的种类分别转换为“电气”、“农业”、“海洋”和“航空,其他数字代表的种类转换为“其他”,就可以使用case语句来完成。

语法简介

CASE [ expression ]
   WHEN condition_1 THEN result_1
   WHEN condition_2 THEN result_2
   ...
   WHEN condition_n THEN result_n
   ELSE result
END

参数说明:
expression:可选参数,其值是用来跟when后面的条件(condition_1, condition_2, …)进行比价的;
condition_1, condition_2, … condition_n:这些条件会依次被判断,一旦出现条件为真的情况,会立即返回该条件对应的then后的result值,并且不再对下面的条件进行判断;
result_1, result_2, … result_n:当对应条件成立时返回的值。
注意:
经过判断后当没有条件为真时,case语句将返回else后的值;如果else省略了,并且没有条件为真时case语句将返回NULL。

示例演示

凡是没有示例的讲解都是苍白的,下面通过两个例子来演示case语句的具体使用,一个例子case后带expression,另一个例子case后不带expression。
表ay_t中字段信息及数据如下,要实现的需求为把1、2、3和4代表的种类分别转换为“电气”、“农业”、“海洋”和“航空,其他数字代表的种类转换为“其他”:

idy_type
10001
10012
10023
10034
10045

示例一——带有expression

  select
 y_type,
 case y_type
 when '1' then '电气'
 when '2' then '农业'
 when '3' then '海洋'
 when '4' then '航空'
 else '其他'
 end y_name
 from ay_t

查询结果为:

y_typey_name
1电气
2农业
3海洋
4航空
5其他

示例二——不带expression

 select
 y_type,
 case 
 when y_type='1' then '电气'
 when y_type='2' then '农业'
 when y_type='3' then '海洋'
 when y_type='4' then '航空'
 else '其他'
 end y_name
 from ay_t

查询结果为:

y_typey_name
1电气
2农业
3海洋
4航空
5其他

可以看到两个示例查询结果一样。
在不带expression的示例中,每个condition可以是不同字段间的比较,从而实现复杂的逻辑。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值