一篇文章带你了解SQL之CASE WHEN用法详解

一篇文章带你了解 SQL 之 CASE WHEN 用法详解

CASE WHEN 简介

在 SQL 中,CASE WHEN 语句用于根据指定的条件执行不同的操作。它类似于程序中的 if-else 语句,对于不同的条件分别执行不同操作。

CASE WHEN 语句包括以下几个部分:

CASE
    WHEN condition_1 THEN result_1
    WHEN condition_2 THEN result_2
    ELSE default_result
END

其中 condition_1, condition_2 为不同的条件,可以是列名或者表达式;result_1, result_2 为不同条件满足时的返回结果;default_result 为所有条件均不满足时的默认返回结果。

CASE WHEN 示例

以下是两个使用 CASE WHEN 的示例。

示例一

假设我们有一个学生成绩表,其中包含学生的姓名、数学成绩和语文成绩。我们希望根据这些成绩计算每个学生的总分,并根据总分的不同等级分类。具体来说,总分在 90 分以上为 A 级,80 分以上为 B 级,70 分以上为 C 级,60 分以上为 D 级,60 分以下为不及格。

以下是 SQL 查询语句:

SELECT
    name,
    math,
    chinese,
    math + chinese AS total_score,
    CASE
        WHEN math + chinese >= 90 THEN 'A'
        WHEN math + chinese >= 80 THEN 'B'
        WHEN math + chinese >= 70 THEN 'C'
        WHEN math + chinese >= 60 THEN 'D'
        ELSE '不及格'
    END AS level
FROM
    score_table;

这里使用了 CASE WHEN 语句来计算每个学生的总分和等级。math + chinese 表示该学生的总分,根据不同的总分区间返回不同的等级。

示例二

假设我们有一个订单表,其中包含订单编号、下单时间和订单状态。对于已取消的订单,我们希望在查询结果中显示为“已取消”,对于未取消的订单,我们希望显示为“未取消”。

以下是 SQL 查询语句:

SELECT
    order_id,
    order_time,
    CASE
        WHEN order_status = '已取消' THEN '已取消'
        ELSE '未取消'
    END AS status
FROM
    order_table;

这里使用了 CASE WHEN 语句来判断订单是否已取消。order_status = '已取消' 表示订单状态为“已取消”,返回“已取消”,否则返回“未取消”。

总结

通过以上两个示例,我们可以看出 CASE WHEN 语句对于根据不同条件返回不同结果非常方便。CASE WHEN 语句在复杂的查询语句中也非常常见,可以帮助我们快速清晰地编写 SQL 语句。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章带你了解SQL之CASE WHEN用法详解 - Python技术站

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

相关文章

  • redis 主从备份及其主备切换的操作

    Redis是一种高性能的key-value存储系统,可以用于缓存、队列、排名榜等不同场景。Redis主从备份则是指将Redis的数据在多台机器之间进行备份和同步,从而提高数据的可用性和安全性。 以下是Redis主从备份及其主备切换的完整攻略: 1. 配置Redis主从复制 Redis主从复制的原理是将主节点上的数据异步地复制到一个或多个从节点中,从节点只能读…

    database 2023年5月22日
    00
  • redis-shake同步redis数据的实现方法

    实现方法 Redis-shake是一个开源的Redis数据迁移工具,支持从Redis/Memcache/MongoDB到Redis/Mysql的全量和增量数据迁移。其中,Redis-shake的同步Redis数据的实现方法主要有以下几个步骤: 同步源Redis和目标Redis之间的数据差异,通过数据差异实现增量同步 实现定时轮转,保证同步时间的准确性和及时性…

    database 2023年5月22日
    00
  • mysql导入csv文件

    前景:有大量的csv数据重oracle导出字符编码gb2312要导入mysql 1、shell先修改csv文本编码格式 iconv -f GB18030 -t utf-8 “$gb2312file” > “$utf8file” #gb18030是2312的一个超集 2、登录mysql执行下面命令 LOAD DATA INFILE ‘/tmp/file.…

    MySQL 2023年4月13日
    00
  • 运维老鸟谈生产场景对linux系统进行分区的方法

    下面是运维老鸟谈生产场景对Linux系统进行分区的方法的攻略: 一、背景介绍 在Linux系统中,磁盘分区是一项非常重要的工作,它关系到系统的性能和稳定性。在实际生产中我们需要针对不同的应用场景进行合理的分区,以用于合理地满足不同的需求。在进行分区规划时,需要根据自己的实际情况综合考虑磁盘容量和性能等多方面的因素。 二、分区方案 2.1 建议切分的分区 /b…

    database 2023年5月22日
    00
  • 十分简单易懂的Java应用程序性能调优技巧分享

    十分简单易懂的Java应用程序性能调优技巧分享 Java应用程序性能调优需要对代码进行分析、优化,以提高系统的响应和吞吐能力。本文就介绍一些简单易懂的Java应用程序性能调优技巧,以帮助开发者提高应用程序性能。 进行性能分析 性能分析是性能调优的第一步。常见的Java性能分析工具有:VisualVM、JConsole、jstack、jmap、jstat等。通…

    database 2023年5月19日
    00
  • Linux系统下修改mysql字符集为UTF8步骤

    下面是在Linux系统下修改mysql字符集为UTF8的完整攻略: 1. 确定当前的mysql字符集 在终端中运行以下命令来查看当前mysql数据库的字符集: mysql -u username -p 输入密码登录后,在mysql终端页面运行以下命令: SHOW VARIABLES WHERE Variable_name LIKE ‘character\_s…

    database 2023年5月21日
    00
  • hi 感恩节——Linux基础教程之mysql和php

    Hi 感恩节——Linux基础教程之Mysql和PHP 简介 本教程将介绍如何在Linux操作系统中安装、配置和使用Mysql和PHP,这是Web开发中必不可少的两个组件。本教程适合于已经熟悉Linux基础操作的人士。 Mysql安装和配置 安装Mysql 首先,检查系统是否已经安装了Mysql,可以通过以下命令来检查: which mysql 如果系统已经…

    database 2023年5月22日
    00
  • CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装教程详解

    CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装教程详解 1. 安装Apache 1.1 安装Apache Httpd软件包 sudo yum install httpd 1.2 开启防火墙端口 sudo firewall-cmd –permanent –add-port=80/tcp sudo firewall-c…

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