MySQL的CASE WHEN语句的几个使用实例

yizhihongxing

MySQL的CASE WHEN语句是在查询时进行条件判断和赋值的工具。它可以让我们根据不同的条件进行求值,并根据其结果分支执行不同的操作。以下是几个使用实例。

示例1: 根据值进行条件判断与赋值

为了更好的演示我们的示例,我们新建一张stus表:

CREATE TABLE stus (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  sex CHAR(1) NOT NULL,
  score int NOT NULL
);

现在我们假设我们要为stus表中的成绩score字段进行等第评定,将90分以上评定为优秀,80-90分评定为良好,70-80分评定为中等,60-70分评定为及格,60分以下评定为不及格。我们可以使用CASE WHEN语句来实现这个操作:

SELECT
  *,
  CASE
    WHEN score >= 90 THEN '优秀'
    WHEN score >= 80 AND score < 90 THEN '良好'
    WHEN score >= 70 AND score < 80 THEN '中等'
    WHEN score >= 60 AND score < 70 THEN '及格'
    ELSE '不及格'
  END AS grade
FROM
  stus;

这里的CASE WHEN语句会根据score字段的值判断其成绩等第,然后将结果作为新建的grade字段的值返回。注意,这里的END AS grade语句是为了将CASE WHEN表达式的结果作为新建的字段grade。

示例2: 联表查询实现条件分支判断

假如我们现在有一张orders表,记录了所有的订单信息,并且每个订单都有一个商品编号(goods_id)字段,我们需要查询商品名称。但是商品名称位于goods表中,我们需要通过商品编号将orders表和goods表联表查询,然后将商品名称作为新建的字段name返回。下面是使用CASE WHEN语句进行联表查询的示例:

SELECT
  o.*,
  CASE g.id
    WHEN 1 THEN '苹果'
    WHEN 2 THEN '鸭梨'
    WHEN 3 THEN '葡萄'
    ELSE '未知商品'
  END AS name
FROM
  orders o
  LEFT JOIN goods g ON o.goods_id = g.id;

这里我们使用了LEFT JOIN将orders表和goods表联表查询,然后使用CASE WHEN语句进行制定商品名称的筛选,并且将结果作为新建的name字段返回。

以上就是两个MySQL的CASE WHEN语句使用实例。通过CASE WHEN语句的使用可以帮助我们更加方便、灵活地进行条件判断、赋值和联表查询等操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL的CASE WHEN语句的几个使用实例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Mysql数据库的主从复制与读写分离精讲教程

    Mysql数据库的主从复制和读写分离可以提高数据库的性能和可用性。主从复制可以让从数据库复制主数据库的数据,读写分离可以让主数据库负责写操作,从数据库负责读操作,从而提高数据库的整体性能。下面分别介绍主从复制和读写分离的实现方法: Mysql数据库主从复制 1. 主从复制原理 Mysql数据库的主从复制是指将主数据库上的数据自动同步到从数据库上的一种复制方式…

    database 2023年5月18日
    00
  • MySQL5.6基本优化配置

    MySQL5.6基本优化配置是数据库性能优化的重要一环,本文将从如下三个方面来进行详细讲解: 硬件选型与参数配置 MySQL参数优化 SQL语句优化 1. 硬件选型与参数配置 1.1 硬件选型 对于MySQL数据库,硬件选型非常重要。基于不同的应用场景,硬件选型的重点也不同,通常需要考虑CPU、内存、磁盘IO性能等因素。 MySQL在CPU的利用上较为看重单…

    database 2023年5月22日
    00
  • 整理比较全的Access SQL注入参考

    首先,本攻略将介绍如何整理比较全的Access SQL注入参考,以帮助网站管理员和开发人员了解有关Access SQL注入的知识,防止不法分子利用此漏洞攻击网站系统。 步骤一:收集Access SQL注入信息 要整理比较全的Access SQL注入参考,首先要收集Access SQL注入的相关信息。以下是一些可以帮助你收集这些信息的途径: 搜集黑客攻击记录和…

    database 2023年5月22日
    00
  • Mysql数据库存储过程基本语法讲解

    Mysql数据库存储过程基本语法讲解 存储过程是一种预编译的代码块,可以在MySQL数据库中创建和使用。它们是一些SQL语句的集合,可以在一起执行特定的任务。在存储过程中,可以定义变量、使用分支语句、循环语句等,从而实现复杂的业务逻辑。下面将介绍存储过程的基本语法。 创建存储过程 创建存储过程的语法如下: CREATE PROCEDURE procedure…

    database 2023年5月22日
    00
  • Oracle分页查询的实例详解

    让我们开始讲解“Oracle分页查询的实例详解”的完整攻略。 标题 概述 在传统的查询中,我们通常使用 SELECT 语句来查询符合条件的记录,这时候通常会出现数据量过大的情况,因此我们需要对查询结果进行分页展示。在 Oracle 数据库中,我们可以使用 ROWNUM 函数和 RANK 函数来实现分页查询。 语法 ROWNUM 函数 ROWNUM 函数用于对…

    database 2023年5月21日
    00
  • Mysql联合查询UNION和Order by同时使用报错问题的解决办法

    当在MySQL中使用联合查询UNION以及Order by排序时,可能会遇到以下错误: #1221 – Incorrect usage of UNION and ORDER BY 这是因为UNION和Order by语句是有限制的,不能在同一个查询中同时使用。不过这个问题可以通过以下两种方式来解决: 解决方法一:将UNION查询结果作为子查询进行排序 这种方…

    database 2023年5月22日
    00
  • 常用PC服务器阵列卡、硬盘健康监控 叶金荣

    常用PC服务器阵列卡、硬盘健康监控 叶金荣 什么是PC服务器阵列卡? 定义 PC服务器阵列卡又称磁盘阵列卡,是一种用于控制多个硬盘的硬件设备。它可以将多个硬盘组成一个或多个逻辑卷,并通过RAID等技术实现数据的备份、性能的提升和故障的容忍。 常用的PC服务器阵列卡 1. Intel RAID卡系列 Intel RAID卡系列有RS3DC080、RS3UC08…

    database 2023年5月21日
    00
  • oracle数据库下统计专营店的男女数量的语句

    这是 oracle 数据库中查询专营店男女数量的 SQL 语句的攻略,整个过程包括如下几个步骤: 确定查询的数据表:确定数据库中储存了专营店的数据表,如果该表中没有直接记录男女的字段,则需要在该表中关联其他表来获取男女数据。 编写 SQL 语句:使用 SELECT, FROM, WHERE 等关键字编写 SQL 语句来查询专营店男女数量。在 SQL 语句中需…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部