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日

相关文章

  • redis怎么获取所有key

    这篇文章主要介绍“redis怎么获取所有key”,在日常操作中,相信很多人在redis怎么获取所有key问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis怎么获取所有key”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! keys:全量遍历键,用来列出所有满足特定正则字符串规则的key,假设redis此时正在生产环境下…

    Redis 2023年4月13日
    00
  • MongoDB固定集合使用方法详解(详细步骤)

    什么是MongoDB固定集合? MongoDB固定集合是一种特殊的集合,它的大小是固定的,当达到限定大小时,它会覆盖旧的数据。这样可以很好的控制数据的大小,避免数据过度增长引起服务器的瓶颈和性能问题。 创建MongoDB固定集合 要创建MongoDB固定集合,需要在创建集合时指定集合的大小及存储引擎。可以使用以下代码创建MongoDB固定集合: db.cre…

    MongoDB 2023年3月14日
    00
  • MySQL索引的基本语法

    MySQL索引是提高MySQL查询性能的重要手段,本文将带您了解MySQL索引的基本语法,包括创建、添加和删除索引,以及查看和优化索引等相关操作。 1. 创建索引 在MySQL中,可以通过 CREATE INDEX 创建索引,语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_na…

    database 2023年5月22日
    00
  • MySQL查看存储过程方法详解

    MySQL是一种关系型数据库管理系统,支持存储过程的使用。在使用存储过程的过程中,有时需要查看已经创建的存储过程的定义,以便于修改或者优化存储过程的代码。 下面是MySQL查看存储过程的方法及实例说明。 方法一:使用SHOW CREATE PROCEDURE语句查看存储过程的定义 可以通过使用SHOW CREATE PROCEDURE语句来查看存储过程的定义…

    MySQL 2023年3月10日
    00
  • linux sybase 安装全过程(写给初学者)

    Linux Sybase 安装全过程 Sybase是一种商业关系型数据库管理系统,通常在企业级应用程序中得到广泛应用。本文将提供一份Linux环境下安装Sybase的完整攻略,供初学者参考。 1. 下载Sybase安装包 可以到官网下载安装包或者通过wget命令下载,例如: $ wget ftp://ftp.sybase.com/pub/syb301esd4…

    database 2023年5月22日
    00
  • SQL 时间格式化函数

    当我们使用 SQL 查询数据库时,经常需要将日期和时间的数据以各种不同的格式显示出来。SQL 时间格式化函数可以将日期和时间类型的数据以指定格式转化为字符串。 下面是SQL支持的三个主要的日期和时间类型: DATE 包含日期信息,以“YYYY-MM-DD”(年-月-日)格式进行存储。 TIME 包含时间信息,以“HH:MM:SS”(小时:分:秒)格式进行存储…

    database 2023年5月22日
    00
  • Mysql 5.7 新特性之 json 类型的增删改查操作和用法

    Mysql 5.7 新特性之 json 类型的增删改查操作和用法 什么是json类型 JSON是JavaScript Object Notation的缩写,是一种用于数据交换的轻量级文本格式。MySQL 5.7支持JSON类型,可以在表的列中存储JSON格式的数据,这些数据可以在MySQL中进行查询和修改,支持JSON文档中的各种数据类型如字符串、数字、数组…

    database 2023年5月21日
    00
  • Redis 自定义对象 cannot be cast to java.lang.String

    Redis序列化对象的时候报错如下 java.lang.ClassCastException: com.ppdai.cbd.ddp.thirdparty.contract.bhxtzx.BHXTZXTask cannot be cast to java.lang.String at org.springframework.data.redis.seriali…

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