MySQL中case when的基本用法及区别是什么 您所在的位置:网站首页 mysql的casewhen MySQL中case when的基本用法及区别是什么

MySQL中case when的基本用法及区别是什么

#MySQL中case when的基本用法及区别是什么| 来源: 网络整理| 查看: 265

MySQL中case when的基本用法及区别是什么 发布时间:2023-05-05 11:36:51 来源:亿速云 阅读:62 作者:iii 栏目:开发技术

本篇内容主要讲解“MySQL中case when的基本用法及区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“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

用法二:

CASE     WHEN search_condition THEN statement_list     [WHEN search_condition THEN statement_list] ...     [ELSE statement_list] END CASE

下面通过具体示例来说明case when这两种用法的区别:

创建salary表,并向salary表中插入数据:

# 创建salary表: create table salary( id int, name char(1), sex char(1), salary int )engine myisam charset utf8; #向salary表中插入数据: insert into salary values (1,'A','m',2500), (2,'B','f',1500), (3,'C','m',5500), (4,'D','f',500);

示例一:在查询语句中实现更改salary表中员工的性别,即如果员工的性别是‘m’,则将其改为‘f’,反之如果性别为‘f’,则将其改为‘m’。

采用case when的第一种用法:

select id,name, case sex when '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语句的话,则把else后面的值赋给new_sex,否则把null值赋给new_sex。

采用case when的第二种用法:

select id,name,case when sex='f' then 'm' else 'f' end as new_sex,salary from salary;

上述代码中,when后面是一个逻辑表达式,若表达式为真,则把then后面的值赋给new_sex;若第一个when后面表达式为假,则查看第二个when后面的逻辑表达式,以此类推的;若所有when后面的逻辑表达式均为假,且有else语句的话,则把else后面的值赋给new_sex,否则把null值赋给new_sex.

示例二:在查询语句中实现将salary表中员工的工资归类。归类依据是,工资在1000元以下的归为‘low’类,工资在1000-3000元范围归为‘middle’类,工资在3000元以上的归为‘high’类。

这种情况只能采用case when的第二种用法:

select id,name,sex,case when salary > 3000 then 'high' when salary between 1000 and 3000 then 'middle' else 'low' end as salary_level from salary;

假如以3000元为界限,将3000元以上的工资归为‘high'类,3000元以下包括3000元的工资归为‘low’类,则此时也可以采用case when的第一种用法:

select id,name,sex,case salary>3000 when True then 'high' else 'low' end as salary_level from salary;

总结:由前文所述可知,case when的第一类用法只适用于二值比较问题,而case when的第二种用法的适用范围更广。因此我将case when的第一中用法理解为简单条件赋值,第二种用法理解为复杂条件赋值。

补充:MySQL中的case when 中对于NULL值判断

MySQL中case when的基本用法及区别是什么

MySQL中case when的基本用法及区别是什么

到此,相信大家对“MySQL中case when的基本用法及区别是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读: mysql与Oracle的具体区别及功能 mysql三种范式概述

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 上一篇新闻:JavaScript尾递归怎么实现及应用 下一篇新闻:Flutter App开发循环语句怎么使用 猜你喜欢 利用jvm怎么快速的创建一个对象 JVM类的运行机制是什么 如何在c++中利用STL对list结构体进行增加与删除操作 利用javascript怎么实现一个全局的鼠标右键菜单功能 下载安装MySQL 8.0.22的方法 利用C#如何在窗体中对数据库进行连接 利用javascript怎么实现一个鼠标右键菜单功能 使用命令如何查看docker 容器的日志 怎么对JVM的性能进行优化 使用SpringBoot2.X怎么对Redis框架进行整合


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有