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安装常见报错处理方法总结大全

    MySQL安装常见报错处理方法总结大全 引言 本文主要介绍MySQL安装时可能遇到的常见错误及解决方法。本文按照错误出现的时间顺序进行说明,并分为操作系统相关和MySQL本身相关两大类。 操作系统相关错误 1. Permission denied 错误原因:通过root用户登录安装MySQL时,可能会出现权限不足的问题。 解决方法: 在命令后加上sudo: …

    database 2023年5月18日
    00
  • 64位CentOs7源码安装mysql-5.6.35过程分享

    64位CentOS7源码安装MySQL-5.6.35过程分享 环境准备 首先需要安装一些必要的软件,包括C++编译器、make工具、cmake等,以及MySQL所需要的一些依赖库。 示例命令: yum groupinstall "Development Tools" yum install cmake yum install ncurse…

    database 2023年5月22日
    00
  • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

    Linux系统(X64)安装Oracle11g完整安装图文教程 简介 本文将给各位读者提供详细说明,关于在Linux系统(X64)上安装Oracle11g的完整安装图文教程。旨在为读者提供一份详细的安装攻略。本攻略内容包括Oracle11g的基本操作,以及在Linux系统下Oracle11g的配置等。本文将从以下几个方面对Oracle11g进行详细讲解: 环…

    database 2023年5月22日
    00
  • 详解Oracle自定义异常示例

    我来为您详细讲解“详解Oracle自定义异常示例”的完整攻略。 什么是Oracle自定义异常 在Oracle数据库开发中,我们可以自定义异常。自定义异常是指用户自己定义的异常,通过raise语句抛出。与系统定义的异常不同,自定义异常可以根据具体情况定义异常信息和处理方式,让我们的程序变得更加灵活和易于维护。 Oracle自定义异常语法 Oracle自定义异常…

    database 2023年5月21日
    00
  • 快速实现MySQL的部署以及一机多实例部署

    下面我将为您详细讲解如何快速实现MySQL的部署以及一机多实例部署的完整攻略。 快速实现MySQL的部署 选择合适的MySQL版本 首先,我们需要选择适合的MySQL版本。可以在MySQL官网上下载最新版本或者选择其它稳定版本进行安装。 下载并安装MySQL 下载MySQL后,可以使用以下命令安装: $ tar -zxvf mysql-5.7.33.tar.…

    database 2023年5月22日
    00
  • Mysql学习之创建和操作数据库及表DDL大全小白篇

    Mysql学习之创建和操作数据库及表DDL大全小白篇 本文将详细讲解如何在Mysql中创建数据库和表以及DDL的常见操作。让读者能够轻松了解Mysql数据库的基本用法。 创建数据库 在Mysql中,要创建一个新的数据库,首先需要登录Mysql服务器,然后使用CREATE DATABASE命令。 CREATE DATABASE my_database; 上述代…

    database 2023年5月21日
    00
  • shell脚本实现数据库表增量同步的流程

    作为网站的作者,我们可以使用 Shell 脚本来实现数据库表增量同步。下面是 Shell 脚本实现数据库表增量同步的流程: 查询源数据表和目标数据表 使用 SQL 语句查询数据库源表和目标表的 schema,获取源表和目标表的字段名和类型。 — 查询源数据表的 schema DESC source_table; — 查询目标数据表的 schema DES…

    database 2023年5月22日
    00
  • oracle 11g 设置用户密码大小写敏感测试

    Oracle 11g 设置用户密码大小写敏感测试攻略 一、背景 Oracle数据库是一款功能强大的关系型数据库,其安全性得到了广泛的认可。在Oracle数据库中,设置用户密码大小写敏感需要开启Case Sensitive参数。本文将为您介绍如何开启Case Sensitive参数,并进行简单的测试。 二、设置用户密码大小写敏感 1. 连接Oracle数据库 …

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