当前位置: 首页 > news >正文

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;

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

相关文章:

SQL CASE表达式的用法

SQL CASE表达式的用法 一、CASE表达式的基础语法简单CASE表达式搜索CASE表达式 二、简单CASE表达式的应用示例三、搜索CASE表达式的应用示例四、CASE表达式在聚合函数中的应用五、嵌套CASE表达式的应用 今天在也无力用到了CASE表达式&#xff0c;于是有了这篇博客&#xff0c;C…...

趣味魔法项目 LinuxPDF —— 在 PDF 中启动一个 Linux 操作系统

最近&#xff0c;一位开源爱好者开发了一个LinuxPDF 项目&#xff08;ading2210/linuxpdf: Linux running inside a PDF file via a RISC-V emulator&#xff09;&#xff0c;它的核心功能是在一个 PDF 文件中启动并运行 Linux 操作系统。它通过巧妙地使用 PDF 文件格式中的 Ja…...

win32汇编环境,窗口程序使用跟踪条(滑块)控件示例一

;运行效果 ;win32汇编环境,窗口程序使用跟踪条(滑块)控件示例一 ;生成2条横的跟踪条,分别设置不同的数值范围,设置不同的进度副度的例子 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>…...

mars3d接入到uniapp的时候ios上所有地图的瓦片都无法加载解决方案

用的是【Mars3d】官网的uniapp的仓库&#xff0c;安卓没有问题&#xff0c;但是ios的不行 相关链接 mars3d-uni-app: uni-app技术栈下的Mars3D项目模板 解决方案&#xff1a;感觉所有图片请求全被拦截了 uniapp的ios内核不允许跨域&#xff0c;需要先把瓦片下载后转base64&…...

使用 Notepad++ 编辑显示 MarkDown

Notepad 是一款免费的开源文本编辑器&#xff0c;专为 Windows 用户设计。它是替代记事本&#xff08;Notepad&#xff09;的最佳选择之一&#xff0c;因为它功能强大且轻量级。Notepad 支持多种编程语言和文件格式&#xff0c;并可以通过插件扩展其功能。 Notepad 是一款功能…...

wordpress主题制作

工具/原料 <P><BR>使用divcss语言编写的html静态页面一个</P> <P>Macromedia Dreamweaver软件<BR></P> WordPress主题结构分析 1 1、index.php首页模板&#xff08;最基本&#xff09; ---- 1、header.php头部 ---- 2、sidebar.php侧边…...

MybatisPlus常用增删改查

记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤&#xff08;CRUD&#xff09;&#xff0c;而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作&#xff0c;但还是以业务功能为主&#xff0c;而更加复杂的SQL…...

Citus的TPCC、TPCH性能测试

Citus的TPCC、TPCH性能测试 文章目录 Citus的TPCC、TPCH性能测试测试的目的适用范围测试环境架构信息硬件配置操作系统软件版本 测试结果TPCC测试测试结果TPCH测试测试结果 一、环境部署1.1、安装BenchmarkSQL1.2、PostgreSQL安装1.3、nmon部署1.4、TPC-H测试的生成数据工具安装…...

蓝桥杯---颜色分类(leetcode第75题)题解

文章目录 1.问题重述2.思路分析3.代码分析 1.问题重述 颜色分类&#xff0c;实际上就是赋予了三种颜色不同的数值&#xff0c;0,1,2分别代表的就是一个类型的颜色&#xff0c;我们题目说的是对于颜色进行分类&#xff0c;实际上就是对于0,1,2进行分类&#xff0c;我们把很多数…...

C语言基础13:循环结构 for和while

循环结构 什么是循环结构 代码在满足某种条件的前提下&#xff0c;重复执行&#xff0c;就叫做循环结构。 循环的分类 无限循环&#xff1a;其实就是死循环&#xff0c;程序设计中尽量避免无限循环&#xff0c;如果非要使用&#xff0c;那么这个循环一定要在可控范围内。有…...

六西格玛设计培训如何破解风电设备制造质量与成本困局

2023年&#xff0c;中国风电行业装机容量突破4.3亿千瓦&#xff0c;稳居全球第一&#xff0c;但高速扩张背后暗藏隐忧&#xff1a; 质量痛点&#xff1a;叶片开裂、齿轮箱故障等缺陷频发&#xff0c;运维成本占项目全生命周期成本超30%&#xff1b;成本压力&#xff1a;原材料…...

【Android开发】安卓手机APP使用机器学习进行QR二维码识别

前言:本项目是一个 Android 平台的二维码扫描应用,具备二维码扫描和信息展示功能。借助 AndroidX CameraX 库实现相机的预览、图像捕获与分析,使用 Google ML Kit 进行二维码识别。为方便大家了解项目全貌,以下将介绍项目核心代码文件 MainActivity.java 和 AndroidManifes…...

Zabbix-监控SSL证书有效期

背景 项目需要&#xff0c;需要监控所有的SSL证书的有效期&#xff0c;因此需要自定义一个监控项 实现 创建自定义脚本 在Zabbix的scripts目录(/etc/zabbix/scripts/)下创建一个新的shell脚本check_ssl.sh&#xff0c;内容如下 #!/bin/bash time$(echo | openssl s_client…...

生成式聊天机器人 -- 基于Pytorch + Global Attention + 双向 GRU 实现的SeqToSeq模型 -- 上

生成式聊天机器人 -- 基于Pytorch Global Attention 双向 GRU 实现的SeqToSeq模型 -- 上 前言数据预处理下载并加载数据原始数据格式化数据清洗与字典映射转换为模型需要的数据格式 SeqToSeq 模型Encoder 编码器Decoder 解码器全局注意力机制解码器实现 前言 本文会介绍使用…...

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统 需求 在实际生成操作过程中&#xff0c;一般会遇到物理服务器存在多块盘的情况。 安装过程中&#xff0c;磁盘的标签是随机分配的&#xff0c;并不是空间较小的盘&#xff0c;就会使用较小的磁盘标签 而需求往往需要…...

基于进化式大语言模型的下一代漏洞挖掘范式:智能对抗与自适应攻防体系

摘要 本文提出了一种基于进化式大语言模型(Evolutionary LLM)的智能漏洞挖掘框架,突破了传统静态分析的局限,构建了具备对抗性思维的动态攻防体系。通过引入深度强化学习与多模态感知机制,实现了漏洞挖掘过程的自适应进化,在RCE、SQLi、XXE等关键漏洞类型的检测中达到97…...

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板&#xff1a;制作一些光场(Light Field) 当前的目标是为游戏添加光照系统&#xff0c;并已完成了法线映射&#xff08;normal maps&#xff09;的管道&#xff0c;但还没有创建可以供这些正常映射采样的光场。为了继续推进&…...

脉冲当量含义

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在开发C#的运动控制程序的时候&#xff0c;一个必要的步骤就是设置每个轴的脉冲当…...

docker compose部署flink集群

本次部署2个jobmanager和3个taskmanager 一、部署zookeeper集群 flink使用zookeeper用作高可用 部署集群参考&#xff1a;docker compose部署zookeeper集群-CSDN博客 二、创建目录及配置文件 创建timezone文件&#xff0c;内容填写Asia/Shanghai 手动创建目录&#xff1a…...

docker compose快速部署kafka-connect集群

先部署kafka集群&#xff0c;启动 参考&#xff1a;docker compose部署kafka集群-CSDN博客 创建timezone文件&#xff0c;内容填写Asia/Shanghai 再部署kafka-connect集群 networks: net: external: true services: kafka-connect1: restart: always image:…...

不只是显示中文:用fbterm给你的CentOS终端换个‘皮肤’,提升老旧服务器运维效率

终端美学革命&#xff1a;用fbterm打造高效CentOS字符界面工作环境 在服务器运维的世界里&#xff0c;图形界面往往被视为奢侈品。当您面对一台资源受限的老旧CentOS服务器&#xff0c;或者需要远程管理没有X11支持的机器时&#xff0c;字符界面就成了唯一的选择。但单调的终端…...

Android数据存储终极指南:SharedPreferences与ContentProviders完全解析

Android数据存储终极指南&#xff1a;SharedPreferences与ContentProviders完全解析 【免费下载链接】android-best-practices Dos and Donts for Android development, by Futurice developers 项目地址: https://gitcode.com/gh_mirrors/an/android-best-practices 在…...

2025_NIPS_Unveiling Induction Heads: Provable Training Dynamics and Feature Learning in Transformers

文章核心内容与创新点总结 核心内容 本文聚焦Transformer在n元马尔可夫链数据上的上下文学习(ICL)机制,通过分析含相对位置嵌入、多头softmax注意力和归一化前馈网络的双层Transformer训练动态,证明梯度流会收敛到实现“广义归纳头”(GIH)机制的极限模型。该模型中,第…...

在taotoken用量看板中清晰追踪每个项目的模型消耗

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在taotoken用量看板中清晰追踪每个项目的模型消耗 对于依赖大模型进行开发的团队或个人而言&#xff0c;成本控制与预算管理是项目…...

开源技术如何驱动物联网创新:从硬件到软件的平民化革命

1. 物联网与开源&#xff1a;一场全民工程的序章十年前&#xff0c;如果有人告诉我&#xff0c;一个没有任何电子工程背景的艺术家&#xff0c;能自己动手做一个能联网、能自动浇花、还能在社交媒体上发照片的智能花盆&#xff0c;我大概会觉得他在讲科幻故事。但今天&#xff…...

基于 DWT 的盲数字水印实现(嵌入与提取)

一、原理 盲数字水印&#xff08;Blind Watermarking&#xff09;指提取水印时无需原始载体图像&#xff0c;仅依靠含水印图像和密钥即可完成。 DWT&#xff08;离散小波变换&#xff09; 将图像分解为&#xff1a; LL&#xff1a;低频近似分量&#xff08;能量集中&#xff0c…...

开题报告一次通关密码:告别反复修改,虎贲等考 AI 重新定义高效开题

每一位本硕博学生都懂&#xff1a;开题不顺&#xff0c;论文全乱。开题报告是毕业论文的 “总设计图”&#xff0c;选题、框架、文献、技术路线只要一项不达标&#xff0c;就会被导师反复打回&#xff0c;浪费时间、消耗心态&#xff0c;甚至直接拖慢整个毕业节奏。可自己写开题…...

从零搭建ROS Gazebo仿真小车:集成摄像头与YOLO目标检测实现视觉感知

1. 环境准备与ROS安装 在开始构建仿真小车之前&#xff0c;我们需要先搭建好开发环境。ROS&#xff08;Robot Operating System&#xff09;是目前机器人开发最流行的框架之一&#xff0c;它提供了硬件抽象、设备驱动、库函数、可视化工具等丰富功能。我推荐使用Ubuntu 20.04 L…...

抖音批量下载终极解决方案:douyin-downloader免费开源工具完整指南

抖音批量下载终极解决方案&#xff1a;douyin-downloader免费开源工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fa…...

基于Next.js与Tailwind CSS构建高性能数学学院官网实战指南

1. 项目概述&#xff1a;从零构建一个现代数学学院官网 最近接手了一个为一家数学学院构建全新官网的项目。客户的核心诉求很明确&#xff1a;需要一个专业、可信赖且信息清晰的线上门户&#xff0c;主要面向关心孩子教育的家长群体。这个项目没有复杂的后端逻辑&#xff0c;也…...