SQL CASE表达式的用法

SQL CASE表达式的用法

    • 一、CASE表达式的基础语法
      • 简单CASE表达式
      • 搜索CASE表达式
    • 二、简单CASE表达式的应用示例
    • 三、搜索CASE表达式的应用示例
    • 四、CASE表达式在聚合函数中的应用
    • 五、嵌套CASE表达式的应用

今天在也无力用到了CASE表达式,于是有了这篇博客,CASE表达式是一个极为实用的工具,能帮助开发者实现复杂的条件逻辑判

一、CASE表达式的基础语法

CASE表达式主要有两种语法形式:简单CASE表达式和搜索CASE表达式。

简单CASE表达式

CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE result
END

其中,expression是需要计算的表达式,value1value2等是与expression进行比较的值,result1result2等是当expression等于对应值时返回的结果。ELSE result是可选部分,当expression不等于任何指定值时返回此结果,若省略则默认返回NULL

搜索CASE表达式

CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE result
END

这里的condition1condition2等是要计算的条件,result1result2等是当对应条件为真时返回的结果。ELSE result同样可选,当所有条件都为假时返回,省略时默认返回NULL

二、简单CASE表达式的应用示例

假设有一张员工表employees,包含employee_idnamedepartment_id字段。我们想根据department_id显示部门名称。

SELECT employee_id,name,department_id,CASE department_idWHEN 1 THEN '销售部'WHEN 2 THEN '研发部'WHEN 3 THEN '财务部'ELSE '其他部门'END AS department_name
FROM employees;

通过这个查询,就能将数字形式的department_id转换为具体的部门名称。

三、搜索CASE表达式的应用示例

继续以employees表为例,这次我们想根据员工的薪资范围来划分薪资等级。

SELECT employee_id,name,salary,CASEWHEN salary >= 10000 THEN '高薪资'WHEN salary >= 5000 THEN '中等薪资'ELSE '低薪资'END AS salary_level
FROM employees;

利用搜索CASE表达式,依据不同的薪资条件判断出薪资等级。

四、CASE表达式在聚合函数中的应用

假设我们要统计不同薪资等级的员工人数。

SELECT SUM(CASE WHEN salary >= 10000 THEN 1ELSE 0END) AS high_salary_count,SUM(CASE WHEN salary >= 5000 THEN 1ELSE 0END) AS medium_salary_count,SUM(CASE WHEN salary < 5000 THEN 1ELSE 0END) AS low_salary_count
FROM employees;

在聚合函数SUM中结合CASE表达式,实现了对不同薪资等级员工人数的统计。

五、嵌套CASE表达式的应用

当遇到更为复杂的条件判断时,可以使用嵌套CASE表达式。比如,在统计员工绩效时,先判断是否完成基本任务量,再根据完成的超额比例进行细分。

SELECT employee_id,name,task_completion,CASEWHEN task_completion >= 100 THENCASEWHEN task_completion >= 150 THEN '卓越'WHEN task_completion >= 120 THEN '优秀'ELSE '良好'ENDELSE '待提高'END AS performance_level
FROM employees;

通过这种嵌套方式,能处理多维度的条件判断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 编辑器热更C# FastScriptReload

工具源码&#xff1a;https://github.com/handzlikchris/FastScriptReload 介绍 用于运行时修改C#后能快速重新编译C#并生效&#xff0c;避免每次改C#&#xff0c;unity全部代码重新编译&#xff0c;耗时旧且需要重启游戏。 使用 需要手动调整AssetPipeline自动刷新模式&…

vue纯静态实现 视频转GIF 功能(附源码)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、实现后的效果二、使用步骤1.引入库2.下载or复制出来js3. 前端实现 总结 前言 一天一个小demo 今天来一个vue纯静态实现 视频转GIF 功能 上一篇我们讲到了…

因果机器学习(CausalML)前沿创新思路

结合了传统因果推断与机器学习的因果机器学习是目前AI领域的前沿研究方向&#xff0c;其核心优势在于将因果逻辑融入数据驱动模型&#xff0c;从根本上解决了传统方法的缺陷。因此&#xff0c;它也是突破传统机器学习瓶颈的关键方向&#xff0c;不仅当下热度高&#xff0c;在未…

【CubeMX+STM32】SD卡 U盘文件系统 USB+FATFS

本篇&#xff0c;将使用CubeMXKeil, 创建一个 USBTF卡存储FatFS 的虚拟U盘读写工程。 目录 一、简述 二、CubeMX 配置 SDIO DMA FatFs USB 三、Keil 编辑代码 四、实验效果 串口助手&#xff0c;实现效果&#xff1a; U盘&#xff0c;识别效果&#xff1a; 一、简述 上…

docker nginx 配置文件详解

在平常的开发工作中&#xff0c;我们经常需要访问静态资源&#xff08;图片、HTML页面等&#xff09;、访问文件目录、部署项目时进行负载均衡等。那么我们就会使用到Nginx&#xff0c;nginx.conf 的配置至关重要。那么今天主要结合访问静态资源、负载均衡等总结下 nginx.conf …

解读 Flink Source 接口重构后的 KafkaSource

前言 Apache Kafka 和 Apache Flink 的结合&#xff0c;为构建实时流处理应用提供了一套强大的解决方案[1]。Kafka 作为高吞吐量、低延迟的分布式消息队列&#xff0c;负责数据的采集、缓冲和分发&#xff1b;而 Flink 则是功能强大的流处理引擎&#xff0c;负责对数据进行实时…

【推理llm论文精读】DeepSeek V3技术论文_精工见效果

先附上原始论文和效果对比https://arxiv.org/pdf/2412.19437 摘要 (Abstract) DeepSeek-V3是DeepSeek-AI团队推出的最新力作&#xff0c;一个强大的混合专家&#xff08;Mixture-of-Experts&#xff0c;MoE&#xff09;语言模型。它拥有671B的总参数量&#xff0c;但每个tok…

如何使用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天

手把手教你用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天 目录 文章目录 手把手教你用**Java**语言在**Idea**和**Android**中分别建立**服务端**和**客户端**实现局域网聊天**目录**[toc]**基本实现****问题分析****服务端**Idea:结构预览Server类代码解…

java韩顺平最新教程,Java工程师进阶

简介 HikariCP 是用于创建和管理连接&#xff0c;利用“池”的方式复用连接减少资源开销&#xff0c;和其他数据源一样&#xff0c;也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能&#xff0c;另外&#xff0c;和 druid 一样&#xff0c;HikariCP 也支持监控…

如何在 IDE 里使用 DeepSeek?

近期&#xff0c;阿里云百炼平台重磅推出 DeepSeek-V3、DeepSeek-R1、DeepSeek-R1-Distill-Qwen-32B 等 6 款模型&#xff0c;进一步丰富其 AI 模型矩阵。与此同时&#xff0c;通义灵码也紧跟步伐&#xff0c;全新上线模型选择功能&#xff0c;支持基于百炼的 DeepSeek-V3 和 D…

网络安全技术复习总结

1|0第一章 概论 1.网络安全发展阶段包括四个阶段&#xff1a;通信安全、计算机安全、网络安全、网络空间安全。 2.2017年6月1日&#xff0c;我国第一部全面规范网络空间安全的基础性法律《中华人民共和国网络安全法》正式实施。 3.2021年 6月10日&#xff0c;《中华人民共和…

DedeBIZ系统审计小结

之前简单审计过DedeBIZ系统&#xff0c;网上还没有对这个系统的漏洞有过详尽的分析&#xff0c;于是重新审计并总结文章&#xff0c;记录下自己审计的过程。 https://github.com/DedeBIZ/DedeV6/archive/refs/tags/6.2.10.zip &#x1f4cc;DedeBIZ 系统并非基于 MVC 框架&…

业务开发 | 基础知识 | Maven 快速入门

Maven 快速入门 1.Maven 全面概述 Apache Maven 是一种软件项目管理和理解工具。基于项目对象模型的概念&#xff08;POM&#xff09;&#xff0c;Maven 可以从中央信息中管理项目的构建&#xff0c;报告和文档。 2.Maven 基本功能 因此实际上 Maven 的基本功能就是作为 Ja…

2.11 sqlite3数据库【数据库的相关操作指令、函数】

练习&#xff1a; 将 epoll 服务器 客户端拿来用 客户端&#xff1a;写一个界面&#xff0c;里面有注册登录 服务器&#xff1a;处理注册和登录逻辑&#xff0c;注册的话将注册的账号密码写入数据库&#xff0c;登录的话查询数据库中是否存在账号&#xff0c;并验证密码是否正确…

Python(十九)实现各大跨境船公司物流查询数据处理优化

一、前言 之前已经实现了常用 跨境物流船司 基础信息查询功能&#xff0c;如下所示 实现各大跨境船公司[COSCO/ZIM/MSK/MSC/ONE/PIL]的物流信息查询&#xff1a;https://blog.csdn.net/Makasa/article/details/145484999?spm1001.2014.3001.5501 然后本章在其基础上做了一些…

基于微信小程序的博物馆预约系统的设计与实现

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…

深度学习框架TensorFlow怎么用?

大家好呀&#xff0c;以下是使用 TensorFlow 的详细步骤&#xff0c;从安装到构建和训练模型&#xff1a; 一、安装 TensorFlow 安装 Python&#xff1a;TensorFlow 基于 Python&#xff0c;确保已安装 Python&#xff08;推荐 Python 3.8 及以上版本&#xff09;。可通过 Pyt…

如何在华为harmonyOS上调试软件

1、设置-》关于手机-》HarmonyOS 版本连按多下&#xff0c;输入锁屏密码。显示开发者模式已打开。 2、设置-》搜索“开发人员选项”-》开启“开发人员选项”选项。 3、在 开发者选项 中找到 “USB 调试” 并开启。 4、开启 “仅充电时允许 ADB 调试”。 5、设置中开启 &quo…

fpga系列 HDL:Quartus II JTAG 间接配置文件 Indirect Configuration File (.jic) AS模式烧录

先编译生成pof文件 File->Convert Programming Files 转换文件 Tools->Programer 烧录

Python:凯撒密码

题目内容&#xff1a; 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法&#xff0c;它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符&#xff0c;对应关系如下&#xff1a; 原文&#xff1a;A B C D E F G H I J K L M N O P Q R …