当前位置: 首页 > 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:…...

别再用默认表格了!手把手教你定制SPSS输出样式,打造专属报告模板

别再用默认表格了&#xff01;手把手教你定制SPSS输出样式&#xff0c;打造专属报告模板 在数据分析领域&#xff0c;SPSS作为经典工具被广泛应用于市场研究、学术论文和商业决策中。然而&#xff0c;许多专业用户长期被一个问题困扰&#xff1a;系统默认生成的表格样式过于基础…...

手把手教你用Intel System Debugger和DCI OOB盒子抓取开机日志(附CSME解码文件获取指南)

硬件调试实战&#xff1a;Intel System Debugger与DCI OOB盒子的替代方案指南 当主板开机卡死在LOGO界面或出现花屏时&#xff0c;传统调试工具链的突然失效往往让工程师陷入困境。我曾亲眼见过一位同事因为误改GDK7开发板的BIOS设置&#xff0c;导致价值上万的DCI-USB3调试线缆…...

AI-Native数据分析:43 次工具调用,蒸馏成 1 张可复用的知识卡片

很多人最近都在聊 AI-native 工作流, 也在聊"蒸馏"自己的知识库. 但聊得多, 真正落地的人少 —— 因为大家手里的 AI 工具大多停留在 "AI-enabled" 阶段: 一次性问答工具, 用完即弃, 每次重新对一遍口径.这篇文章想用一条真实的 InfiniSynapse 任务回放, 把…...

活动策划27年:一场手印启动,让我读懂“谨慎”二字

活动策划27年&#xff1a;一场手印启动&#xff0c;让我读懂“谨慎”二字做活动策划27年&#xff0c;千余场活动下来&#xff0c;我常跟团队说&#xff1a;“做活动&#xff0c;不怕累&#xff0c;就怕措手不及的意外。”每一场活动前&#xff0c;我都要反复推演流程&#xff0…...

OpenAI成立部署公司并收购Tomoro,AI竞争焦点转向企业落地

OpenAI成立部署公司背后的战略布局品玩5月12日消息&#xff0c;据techstartups报道&#xff0c;OpenAI近日宣布成立“OpenAI部署公司”&#xff0c;该实体由OpenAI控股。同时&#xff0c;OpenAI获TPG领投&#xff0c;还有包括Bain Capital、Brookfield、Goldman Sachs及SoftBan…...

Funannotate数据库安装终极指南:解决HPC环境中的常见问题

Funannotate数据库安装终极指南&#xff1a;解决HPC环境中的常见问题 【免费下载链接】funannotate Eukaryotic Genome Annotation Pipeline 项目地址: https://gitcode.com/gh_mirrors/fu/funannotate Funannotate作为一款专业的真核生物基因组注释流程工具&#xff0c…...

结构函数:电子封装热分析的关键技术解析

1. 结构函数&#xff1a;热分析领域的核心桥梁在电子封装设计与散热方案开发中&#xff0c;热特性分析一直是个令人头疼的问题。想象一下&#xff0c;你手里拿着一块正在发烫的芯片&#xff0c;却无法直接"看到"热量是如何在内部传递的——这就像医生无法用X光检查病…...

保姆级教程:手把手配置英飞凌TC397开发板的调试环境(含板载MiniWiggler与外部DAP接口详解)

英飞凌TC397开发板调试环境全攻略&#xff1a;从接口选择到实战配置 拿到英飞凌TC397开发板的第一天&#xff0c;面对板载的miniWiggler、引出的DAP接口以及各种调试选项&#xff0c;不少开发者都会陷入选择困难。这块功能强大的开发板确实提供了多种调试路径&#xff0c;但每种…...

基于MCP协议的elabftw AI助手:安全模型、配置与自动化实践

1. 项目概述&#xff1a;为电子实验笔记本插上AI的翅膀如果你是一名科研人员、实验室管理者&#xff0c;或者像我一样&#xff0c;经常需要和电子实验笔记本&#xff08;ELN&#xff09;打交道&#xff0c;那你一定对重复性的数据查询、整理和录入工作感到头疼。每天在浏览器和…...

基于 4SAPI 的 API 网关智能监控与故障诊断系统:MTTR 降低 90%,系统可用性提升至 99.99%

前言 在微服务架构盛行的今天&#xff0c;API 网关已经成为企业系统的核心入口&#xff0c;承担着流量路由、负载均衡、认证授权、限流熔断等关键功能。API 网关的稳定性直接决定了整个系统的可用性。但传统的 API 网关监控模式已经难以满足现代企业的需求&#xff1a; 告警风…...