mysql case when用法

news2024/9/27 0:57:55

目录

一:概述

二:使用场景


一:概述

CASE WHEN 是 SQL 中的一个条件表达式,用于在 SQL 查询中实现条件逻辑。它类似于编程语言中的 if-else 或 switch 语句。通过使用 CASE WHEN,你可以在执行查询时根据条件对结果进行分支处理。

表达式如下:

# 简单CASE函数法
CASE 要判断的字段或表达式
  WHEN 常量1 THEN 要显示的值1或语句1(如果是语句,结尾需要加上分号;)
 [WHEN 常量2 THEN 要显示的值2或语句2]
 […]
 [ELSE 要显示的值n或语句n]
END

# CASE搜索函数法
CASE
  WHEN 条件1 THEN 要显示的值1或语句1(如果是语句,结尾需要加上分号;)
 [WHEN 条件2 THEN 要显示的值2或语句2]
 […]
 [ELSE 要显示的值n或语句n]
END

其中条件条件1可以是表达式,也可以是数值

二:使用场景

1:我需要统计商品表根据商品价格区间确定商品的分组,分为低端商品,一般商品,高端商品

SELECT
id,name,sales_money,
CASE
    
    WHEN sales_money < 100 THEN
    '低端商品' 
    WHEN sales_money < 500 THEN
    '一般商品' ELSE '高端商品'  
  END  as sales_money_desc
FROM
  ls_goods

也可以根据确定值来统计,比如价格为600的就是一般商品,价格为200就是低端商品

  SELECT
id,name,sales_money,
CASE
    
    WHEN sales_money =200  THEN
    '低端商品' 
    WHEN sales_money = 600 THEN
    '中级商品' ELSE '高端商品'  
  END  as sales_money
FROM
  ls_goods

还有另外一种写法,结果也是一样的。

  SELECT
id,name,sales_money,
CASE sales_money
    WHEN 200  THEN
    '低端商品' 
    WHEN 600 THEN
    '中级商品' ELSE '高端商品'  
  END  
FROM
  ls_goods

2:case when也可以和group by结合统计,比如根据商品价格区间在100到300的低端商品,区间在300到900为一般商品,900到1500为高端商品 ,利用case when对商品进行类型分组,再统计每个类型的商品个数

SELECT  
  CASE  
    WHEN sales_money BETWEEN 100 AND 300 THEN '低端商品'  
    WHEN sales_money BETWEEN 300 AND 900 THEN '一般商品'  
    WHEN sales_money BETWEEN 900 AND 1500 THEN '高端商品'  
    ELSE '其他' 
  END AS goods_type,  
  COUNT(*) AS count  
FROM  
  ls_goods  
GROUP BY  
  goods_type  
ORDER BY  
  goods_type;


  

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

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

相关文章

全网最全的设计效率工具?设计师的最佳助手!

身为设计师的你&#xff0c;是不是下载的素材堆积如山&#xff0c;用时却得在文件夹里层层翻找。在PS&#xff0c;Figma等不同的设计软件里做好的效果样式和工程&#xff0c;想要整理和再次使用很麻烦。不过&#xff0c;现在有了千鹿设计助手&#xff0c;提供一系列适合设计师的…

系统编程-02进程间通信

目录 1、管道 2、消息队列 &#xff08;1&#xff09;ftock()--创建IPC的键值KEY &#xff08;2&#xff09;获取消息队列ID &#xff08;3&#xff09;发送和接收消息 &#xff08;4&#xff09;设置或者获取消息队列的相关属性 3、共享内存 &#xff08;1&#xff09…

14.Spring程序部署-Linux部署

文章目录 1. 打包项目2. linux中删除mariadb&#xff0c;下载mysql3. .yml配置文件4.xshell中部署项目1)首先先在Linux中创建一个新的文件夹2)进入刚创建的文件夹&#xff0c;并将刚打包好的.jar包文件拖进来3)进入Linux中的mysql&#xff0c;并建库建表4)启动程序5)Linux服务器…

使用Anaconda安装多个版本的Python并与Pycharm进行对接

1、参考链接 Anaconda安装使用教程解决多Python版本问题_anaconda安装多个python版本-CSDN博客 基于上面的一篇博客的提示&#xff0c;我做了尝试。并在Pycharm的对接上做了拓展。 2、首先安装Anaconda 这个比较简单&#xff0c;直接安装即可&#xff1a; 3、设置conda.exe的…

筑牢企业防线,打造高效员工行为管控体系!行为管控软件分享,老板的智慧之选!

商贾之道&#xff0c;在于治事有序&#xff0c;人心齐整。有言曰&#xff0c;防身立命&#xff0c;先固其本。企业之基&#xff0c;在于人心与秩序。 行为管控软件乃老板之智慧&#xff0c;企业之福音也&#xff01;本文将以安企神行为管控软件为例&#xff0c;探讨如何借助这…

人工智能在肿瘤免疫微环境领域的研究进展|顶刊速递·24-08-07

小罗碎碎念 2024-08-07 今天这期推文的主题是——人工智能在肿瘤免疫微环境领域的研究进展。 第三、五、六篇文献在06-02的推文中介绍过&#xff0c;但是考虑到知识体系的完整性&#xff0c;同时方便大家补充这一部分的临床知识&#xff0c;所以再次把这三篇文章收纳进来。 我…

进程状态(三)----- linux 中具体的进程状态(下)

目录 前言1. T && t 状态2. X 与 Z 状态3. 孤儿进程 前言 继上一篇文章 进程状态&#xff08;二&#xff09;----- linux 中具体的进程状态&#xff08;上&#xff09; 介绍了 linux 系统中具体的 R、S、D 状态&#xff0c;而这篇文章继续介绍 linux 系统中剩下的三种…

【hbz分享】-springboot启动时做了哪些事情

spring启动类启动时的流程 先调用SpringApplication完成一系列初始化操作 先把启动类保存起来&#xff0c;就是带有main函数的那个类&#xff0c;把这个保存起来保存应用类型&#xff0c;是Servlet还是Ractive通过getSpringFactoriesInstances(BootstrapRegistryInitializer.…

<数据集>战斗机识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7903张 标注数量(xml文件个数)&#xff1a;7903 标注数量(txt文件个数)&#xff1a;7903 标注类别数&#xff1a;43 标注类别名称&#xff1a;[F16, Mig31, F35, F18, SR71, A10, A400M, AG600, J20, F4, C17, Tor…

C语言程序设计之基础易错题锦集2

C语言程序设计之基础易错题锦集2 自加自减代码2_0_1运行结果2_0_1代码2_0_2运行结果2_0_2 问题2_1解答2_1 问题2_2结果2_2 问题2_3结果2_3 问题2_4结果2_4 问题2_5结果2_5 问题2_6结果2_6 自加自减 代码2_0_1 #include<stdio.h>main(){int a,b,c,d;abcd10;printf("…

【枚举 图论】2242. 节点序列的最大得分

本文涉及知识点 枚举 图论知识汇总 LeetCode 2242. 节点序列的最大得分 给你一个 n 个节点的 无向图 &#xff0c;节点编号为 0 到 n - 1 。 给你一个下标从 0 开始的整数数组 scores &#xff0c;其中 scores[i] 是第 i 个节点的分数。同时给你一个二维整数数组 edges &…

区分虚拟网卡和物理网卡

枚举注册表网卡信息 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}读取没一项的Characteristics、NetCfgInstanceId信息Characteristics & NCF_PHYSICAL 即为物理网卡 Characteristics值 类型值说明NCF_VIRTUAL0x01…

STM32L051K8U6-HAL-LED闪烁设计

HAL三步法&#xff1a; 1、配置下载线 2、配置晶振 3、配置时钟 注意&#xff1a;中断优先级&#xff08;这里防止HAL_Delay卡死&#xff0c;详细请看 http://t.csdnimg.cn/NQhQV&#xff09; 4、 配置灯引脚属性为输出模式。并设置标签为LED 生成代码&#xff1a;编写while里…

《关于触手 AI 图像合成算法的分析报告》

一、算法全周期行为分析 算法安全 信息内容安全&#xff1a;在图像生成过程中&#xff0c;需要确保所生成的图像内容不包含违法、有害、侵犯他人权益或违反道德规范的信息。例如&#xff0c;不能生成涉及暴力、色情、恐怖主义等内容的图像。信息源安全&#xff1a;对于输入的原…

警惕智能手机的“隐形眼”:如何保护我们的数字隐私堡垒

随着智能手机深入我们生活的方方面面&#xff0c;它变得无所不在&#xff0c;甚至无所不知。 但你是否意识到&#xff0c;你的手机可能正在悄无声息地“监听”你的一举一动&#xff1f; 从你的搜索习惯到日常对话&#xff0c;手机的个性化推荐系统正不断收集你的数据。 本文…

参考图片神器《PureRef》,带下载。

画画、建模或者做设计看参考时&#xff0c;是否经常为不能同时共存两个页面而苦恼。 今天就给大家推荐一个能解决这个问题得软件——PureRef 下载地址&#xff1a;PureRef 2.0汉化版 汉化版2.0 蓝奏云&#xff1a; https://wwz.lanzouq.com/iyUTy1zt2b4d 下面是一些软件快…

UWA Gears兼容性数据公开

UWA最新发布了无SDK性能分析工具 - UWA Gears。该工具能够实时监测应用的CPU和GPU性能&#xff0c;无需代码改动即可掌握性能动态。此外&#xff0c;Gears还能截取应用的渲染画面进行深度分析&#xff0c;帮助您快速找到性能瓶颈并进行精准优化。 本篇内容为开发者提供了Gears…

【LVS】防火墙标签解决轮询错误

实验&#xff1a; 测试&#xff1a; 实验&#xff1a; 两个服务端下载软件在重启httpd lvs 标记多端口 多端口自动识别 测试 防火墙标记解决轮回问题

关于IAR的ICF编程操作

最近有一个项目需要对ICF进行外部编程。两个工程引用相同的ICF&#xff0c;通过外部输入参数来区分内部的地址范围。通过相关资料的研究&#xff0c;cmake可以通过参数导入一个变量来就觉这个问题。后来参考IAR手册发现可以在IDE中定义. 例子&#xff1a; icf文件&#xff1a…

Java Kafka消费者组位移重设深度解析与实践

简介 在现代的分布式系统中&#xff0c;消息队列扮演着至关重要的角色。Apache Kafka&#xff0c;以其高吞吐量、高可靠性和优秀的容错性&#xff0c;成为了众多企业的首选消息系统。在使用Kafka过程中&#xff0c;消费者组位移的管理是一个常见且关键的议题。本文将深入探讨K…