SQL 中 CASE 表达式的使用方式

SQL 中 CASE 表达式可以用于进行条件判断,根据不同的条件返回不同的结果,语法结构如下:

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    [ELSE resultN]
END

其中 expression 代表要进行判断的表达式,value1value2 分别代表不同的条件,result1result2 是条件成立时的返回值,ELSE 可选,代表当都不满足前面的条件时的默认返回值。

下面通过实际的例子来说明 CASE 表达式的使用。

示例一:根据订单数量计算优惠金额

假设我们需要根据用户的订单数量来计算优惠金额,订单数量在 100 到 200 之间时优惠 10 元,订单数量在 200 到 300 之间时优惠 20 元,订单数量超过 300 时优惠 30 元。我们可以使用 CASE 表达式编写以下 SQL 语句:

SELECT *,
    CASE 
        WHEN order_num BETWEEN 100 AND 200 THEN 10
        WHEN order_num BETWEEN 201 AND 300 THEN 20
        ELSE 30
    END AS discount_amount
FROM orders;

其中 order_num 是我们要判断的订单数量,BETWEEN 操作符用来判断一个值是否在两个值之间,如果订单数量在 100 到 200 之间,则返回 10,否则继续判断是否在 201 到 300 之间,如果是,则返回 20,否则返回默认的 30。最后使用 AS 命令为计算结果设置一个别名 discount_amount

示例二:根据成绩计算评级

我们也可以通过 CASE 表达式来根据成绩计算评级。假设学生分数在 80 分以上为 A,60 分以上为 B,60 分以下为 C。我们可以使用以下 SQL 语句来实现:

SELECT *,
    CASE 
        WHEN score >= 80 THEN 'A'
        WHEN score >= 60 THEN 'B'
        ELSE 'C'
    END AS grade
FROM scores;

其中 score 代表学生的成绩,根据不同的取值范围返回不同的评级,最后将结果设置为别名 grade

通过以上两个示例,我们可以发现 CASE 表达式是一个非常强大的条件判断工具,在复杂的查询中能够帮助我们轻松实现需要的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL 中 CASE 表达式的使用方式 - Python技术站

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

相关文章

  • 配置ogg异构oracle-mysql(1)基础环境配置

    一、环境描述: 192.168.0.164 ( Oracle ) —> 192.168.0.165 (Mysql ) 版本: 操作系统:redhat5.8 Oracle:  11.2.0.3 Mysql:     5.5.37 goldgate: 11.2.0.1.3 for oracle 11.2.0.1.1 for mysql 测试用户: 在ora…

    MySQL 2023年4月12日
    00
  • BMS和EMS的区别

    BMS(Battery Management System)和EMS(Energy Management System)是电池管理系统和能量管理系统,这两个概念是由电力电子技术在电动汽车和新能源领域引入的。虽然它们是相关的,但它们的功能和应用范围不同。 BMS是电池管理系统,用于维护电动车电池的健康、充电和放电状态的监控和控制。BMS需要实时测量电池的电压、…

    database 2023年3月27日
    00
  • spring boot项目application.properties文件存放及使用介绍

    介绍 application.properties是SpringBoot项目中常用的一种配置文件,可以用来定义项目的各种属性值,其中包括:数据库链接信息、各种组件的属性以及其他一些自定义属性值等等。本文将对application.properties的存放位置、使用方法以及示例进行详细的介绍。 存放位置 在一个SpringBoot项目中,applicatio…

    database 2023年5月18日
    00
  • Oracle 11G密码180天过期后的修改方法

    下面是关于“Oracle 11G密码180天过期后的修改方法”的完整攻略。 标题一:新建oracle用户并设置密码 首先,在Oracle 11G中新建一个用户,方法如下: CREATE USER username IDENTIFIED BY password; 其中,username是新建用户的用户名,password是用户的密码。 示例1:新建一个名为“t…

    database 2023年5月21日
    00
  • VMware中CentOS设置静态IP的方法

    使用VMware虚拟机中的CentOS系统,如果想要设置静态IP地址,需要按照以下步骤进行操作。 1. 查看当前IP地址和网关 在终端中执行如下命令: ip addr 可以看到当前系统的IP地址和网关。 示例: [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 …

    database 2023年5月22日
    00
  • DB2比较常用与实用sql语句总结

    DB2比较常用与实用SQL语句总结 概述 IBM DB2是一款大型关系型数据库管理系统,广泛应用于企业级应用程序。作为数据库管理员或开发人员,掌握DB2的常用SQL语句是非常重要的。本篇文章总结了DB2常用的SQL语句,希望能够对您的工作有所帮助。 1. 创建表 在DB2中创建表的语法如下: CREATE TABLE table_name ( column1…

    database 2023年5月21日
    00
  • MySQL操作数据库和表的常用命令新手教程

    MySQL是一种常见的关系型数据库管理系统,操作数据库和表的命令是MySQL的基础知识之一。本文将为新手介绍MySQL的常用操作。 连接MySQL数据库 首先,需要使用MySQL登录控制台,命令格式如下: mysql -u root -p 其中,root是管理员用户名,-p表示连接时需要输入密码。输入正确的密码后,就可以进入MySQL的控制台。 创建数据库 …

    database 2023年5月21日
    00
  • 在C#中使用Redis

    一、下载ServiceStack.Redis   VS2015版本 二、将解压后的文件中下面四个dll引用到项目中 三、用C#对redis来进行简单的读取和写入操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Servi…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部