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

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索引的一些常见面试题大全(2022年)

    MySQL索引是MySQL中的重要组成部分,它能够帮助我们提高数据查询的效率。在MySQL面试中,经常会有一些关于MySQL索引的面试题目。为了帮助大家更好地准备MySQL面试,本文将为大家介绍MySQL索引的一些常见面试题大全,包括索引的基本原理、常见的索引类型、索引的使用规则和优化技巧等。 一、MySQL索引的基本原理 MySQL索引是基于B+树算法实现…

    database 2023年5月22日
    00
  • 使用nginx模拟进行金丝雀发布的方式

    金丝雀发布(Canary release)是将一部分流量新版本的应用程序,同时保留部分流量旧版本的应用程序的一种技术,目的是减少应用程序的风险和对用户的影响。Nginx是一个自由、开源、高性能、轻量级的HTTP服务器和反向代理服务器,可以用来模拟进行金丝雀发布的方式。下面是详细的攻略: 1. 安装Nginx服务器 安装Nginx服务器可以参考其官方网站提供的…

    database 2023年5月22日
    00
  • Linux服务器的一些基本应用

    Linux服务器的一些基本应用攻略 在Linux服务器上,有一些常用的基本应用程序可以帮助我们更好地管理和维护服务器。以下是一些重要的应用程序和命令,在本文中将进行详细讲解。 SSH SSH是远程登录到Linux服务器的标准方式,它通过使用加密的网络协议来保护数据的安全传输。在安装SSH之后,可以使用如下命令来连接到远程服务器: ssh username@h…

    database 2023年5月22日
    00
  • MongoDB投影(查询指定的字段)方法详解

    什么是投影 在MongoDB中,投影是一种查询方式,它允许我们从文档中选择一小部分字段,以便返回更少的数据量。这对于减少网络带宽和提高查询效率非常有用。 在查询中,可以通过在find()函数中传递第二个对象参数来实现投影。这个对象参数描述了我们想要返回的字段,以及我们希望它们是如何进行排序的。 如何使用投影 在使用投影时,我们需要指定要返回的字段名,或者使用…

    MongoDB 2023年3月14日
    00
  • IBM DB2 和 PostgreSQL 的区别

    IBM DB2和PostgreSQL是两种非常受欢迎的关系型数据库管理系统。虽然它们都是关系型数据库管理系统,但它们之间有很多区别,包括社区支持、性能、可扩展性、安全性、功能和成本等方面。下面是一个详细的比较和说明: 社区支持 IBM DB2是由IBM开发和维护的商业数据库管理系统。它拥有一个庞大的客户群,并在大型企业和机构中广泛使用。然而,DB2的社区支持…

    database 2023年3月27日
    00
  • jsp 连接sql server 2008 连接不上的解决方法

    针对“jsp 连接sql server 2008 连接不上的解决方法”的问题,我们需要详细讲解以下步骤和解决方法: 1. 确认连接信息 首先,需要确认JDBC连接SQL Server的相关信息是否填写正确。这包括SQL Server的服务器地址、端口、数据库名称、用户名和密码等信息。另外,还需要注意JDBC驱动版本是否正确。在确认所有信息无误后,可以考虑执行…

    database 2023年5月21日
    00
  • PHP简单系统数据添加以及数据删除模块源文件下载

    下面就来详细讲解“PHP简单系统数据添加以及数据删除模块源文件下载”的完整攻略。 1. 下载源码 首先,你需要下载源码。可以在网站或论坛上搜索PHP简单系统数据添加以及数据删除模块的源码并下载,或者自己手动编写代码。 2. 添加数据模块 2.1. 数据库连接 在添加数据之前,需要先连接数据库。可以在源码中找到以下代码: $servername = &quot…

    database 2023年5月21日
    00
  • SQL注入原理与解决方法代码示例

    SQL注入原理与解决方法介绍 SQL注入攻击是通过在应用程序中嵌入恶意代码,从而使攻击者可以向数据库提交恶意SQL语句的一种方式。这种攻击方式可以绕过应用程序的安全控制,从而造成安全漏洞,可能导致机密数据泄露、数据篡改甚至拒绝服务等安全风险。 解决SQL注入攻击的方法主要有以下几种: 严格的输入过滤: 对用户输入的数据进行校验和限制,防止用户在输入数据时注入…

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