首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

MySQL Case When 用法

2023-11-13 来源:花图问答

 sex    when ‘1‘ then ‘男‘    when ‘2‘ then ‘女‘    else ‘其他‘ end

2、case搜索函数:

 case when sex = ‘1‘ then ‘男‘    when sex = ‘2‘ then ‘女‘    else ‘其他‘ end

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

例如:

select grouping_authorizations.group as ‘授权分组‘,count(id) as ‘总用户数‘,sum(case when is_authorize=1 then 1 else 0 end) as ‘授权用户数‘,sum(case when is_authorize=2 then 1 else 0 end) as ‘未授权用户数‘ from grouping_authorizations group by grouping_authorizations.group;

Enjoy it !

MySQL Case When 用法

标签:bsp   auth   font   end   格式   col   sel   简洁   from   

小编还为您整理了以下内容,可能对您也有帮助:

mysql case when 用法

mysql case when用法如下:

用法一:CASE case_value.WHEN when_value THEN statement_list.【WHEN when_value THEN statement_list】【ELSE statement_list】END CASE。

用法二:WHEN search_condition THEN statement_list【WHEN search_condition THEN statement_list】【ELSE statement_list】END CASE。

用法三:在查询语句中实现更改salary表中员工的性别,即如果员工的性别是‘m’,则将其改为‘f’,反之如果性别为‘f’,则将其改为‘m’。采用case when的第一种用法:select id,name,case sexwhen 'f' then 'm'else 'f' end as new_sex,salary from salary。

这种用法通过比较case后面的case_value和第一个when后面的when_value,若二者相等则给new_sex赋一个指定的值,若二者值不相等,则比较case_value与第二个when后面的when_value是否相等,以此类推。若case_value与所有的when_value都不相等,且有else语句

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)。

MySQL的CASE WHEN用法

case when有两个用法,一个是行转列,一个是更改列的值

在数据分析时经常要用到行转列,此时如果使用case when就会方便很多,case when的熟练使用程度,可以说的判断对SQL操作水平的评定方法之一。

case when的语句在某种程度上可以理解成是if函数的简便逻辑写法,主要有两种模式:

模式一(简单变量表达式):

模式二(搜索变量表达式):

通常情况下,模式二的方式会更加灵活,在工作中也推荐使用模式二的写法(特别是如果有使用Tableau等软件制作参数的时候,语法跟模式二的相同的)。

看具体的例子:

如果现在想要看不同学生的平均分和每个课程的成绩,并且不同课程按列进行显示,要怎么操作呢?

这个时候,使用case when就很方便了

当然了,也可以使用case when对学生的成绩进行优良中差的判断,这个在工作中的使用场景也是蛮多的,如果有兴趣的同学可以自己试着练习看看。

这个就是case when在MySQL中的常用用法。

MySQL的CASE WHEN怎么用

如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

mysql> SELECT CASE 1 WHEN 1 THEN 'one'

-> WHEN 2 THEN 'two' ELSE 'more' END;

-> 'one'

mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

-> 'true'

mysql> SELECT CASE BINARY 'B'

-> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;

-> NULL

一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定。如果用在字符串语境中,则返回结果味字符串。如果用在数字语境中,则返回结果为十进制值、实值或整数值。

显示全文