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

MySQL--case语句 简单明了

CASE语句回顾:

· case语句格式一

CASE input_expressionWHEN expression1 THEN result_expression1WHEN expression2 THEN result_expression2[...n]ELSE result_expressionEND

 CASE后面有表达式时,将CASE后的表达式的值与各WHEN子句的表达式值比较,如果相等,则执行THEN后面的表达式或语句,然后跳出CASE语句;否则,返回ELSE后面的表达式。

· case语句格式二

CASEWHEN expression1 THEN result_expression1WHEN expression2 THEN result_expression2[...n]ELSE result_expressionEND

CASE后面没有表达式时,多个WHEN子句中的表达式依次执行,如果表达式结果为真,则执行相应THEN关键字后面的表达式或语句,执行完毕之后跳出CASE语句。如果所有WHEN语句都为FALSE,则执行ELSE子句中的语句。

小tips:在交换数据和列转行时可以考虑使用case语句

代码实例

SELECT stock_name,SUM(CASE operationWHEN 'sell' THEN price ELSE -price  END                  ) AS capital_gain_loss      
FROM Stocks
GROUP BY stock_name 
selectstock_name,sum(casewhen operation = 'Buy' then -pricewhen operation = 'Sell' then priceend) as capital_gain_loss
from stocks
group by stock_name

(为了让你们更好的理解,所以一段SQL写了两种不同的表达方式) 

这段SQL 查询计算每个股票(stock_name)的总资本收益/损失(capital_gain_loss)。对于每个股票,它会将所有的卖出(operation='sell')操作的价格(price)相加,并将所有的买入(operation='buy')操作的价格取相反数后相加。最终的结果以股票名称(stock_name)进行分组。 

相关文章:

  • 在WebGL中创建动画
  • 使用PySpark处理DataFrame以拆分数组列
  • 2024美赛数学建模C题思路分析 - 网球的动量
  • 【考研408】计算机网络笔记
  • Centos8保姆级安装教程
  • 过年手机推荐
  • day32 买卖股票的最佳时机Ⅱ 跳跃游戏 跳跃游戏Ⅱ
  • springboot jar包编写启动start.sh
  • AI新宠Arc浏览器真可以取代Chrome吗?
  • C#入门及进阶教程|C#基本语法(五):控制台应用程序与格式化输出
  • 【NTN 卫星通信】TN 和 NTN的Inter-PLMN应用场景
  • 【Django】Cookie和Session的使用
  • python将.db数据库文件转成Excel文档
  • VCG 网格中点细分
  • VMware虚拟机安装macOS
  • [数据结构]链表的实现在PHP中
  • 「面试题」如何实现一个圣杯布局?
  • 2017 前端面试准备 - 收藏集 - 掘金
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • bootstrap创建登录注册页面
  • express + mock 让前后台并行开发
  • Java深入 - 深入理解Java集合
  • leetcode-27. Remove Element
  • php ci框架整合银盛支付
  • PHP 的 SAPI 是个什么东西
  • PHP 小技巧
  • Unix命令
  • 初识MongoDB分片
  • 浅谈Golang中select的用法
  • 悄悄地说一个bug
  • 如何实现 font-size 的响应式
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 原生JS动态加载JS、CSS文件及代码脚本
  • nb
  • MyCAT水平分库
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #NOIP 2014#Day.2 T3 解方程
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (LeetCode C++)盛最多水的容器
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)springcloud实战之config配置中心
  • (二十四)Flask之flask-session组件
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)80c52学习之旅-起始篇
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET MVC 验证码
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • @Valid和@NotNull字段校验使用
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)