MYSQL case when 的两种用法

 第一种:简单Case函数 

              case 列名

    when   条件值1   then  选择项1

    when   条件值2    then  选项2.......

    else     默认值      end

第二种:Case搜索函数

              case  

    when  列名= 条件值1   then  选择项1

    when  列名=条件值2    then  选项2.......

    else    默认值 end

比较: 两种格式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。

还有一个问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。如下面这个例子:

CASE col

WHEN col_1 IN ( 'a', 'b') THEN '第一类'

WHEN col_1 IN ('a')      THEN '第二类'

ELSE'其他' END

这个语句中,满足条件a永远不会返回第二类,因为按顺序发现a在第一类的时候查询就已经结束了。所以case无法用于一个东西在一个分类里有不同的属性的条件。

case when 好处很明显就是非常易于看懂,相比实现同样条件用复杂的自连接查询,在逻辑上很容易看懂(自连接查询在不同的情况下可能会有BUG)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:廖亚丽 企业名称:东莞耀升机电有限公司 组别:AT努力组 【日精进打卡第54天】 【知~学习】 诵读《六项精...
    廖亚丽阅读 1,683评论 0 0
  • 文/ 蓝山 自从使用微信以来,我们一直相处的不错,以至于不久前,为了方便文件传送,我又申请了一个新的微信号。 不巧...
    蓝山日记阅读 1,865评论 0 1
  • 人们将他们的历史、信仰、态度、欲望和梦想铭记在他们创造的影像里。——罗伯特·休斯,艺术评论家,来自《认识电影》 我...
    松梅子扬阅读 6,169评论 3 15
  • 用微笑交流感情,用爱心传递真情。 文明是社会的脚步,爱心是前进的摇篮。 精彩无处不在!
    徐大少黄石阅读 1,456评论 0 3