zoukankan      html  css  js  c++  java
  • mysql Case函数 与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)。

  • 相关阅读:
    组合继承
    包装明星——封装
    多种添加公用方法的方式
    专有扩展
    插入标记
    mac 命令操作
    php(apache)切换版本
    SqlServer索引+约束篇章
    sqlserver 常用语法
    C# 通用数据访问类
  • 原文地址:https://www.cnblogs.com/yc3110/p/13639101.html
Copyright © 2011-2022 走看看