我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中Case When用法及说明

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中Case When用法及说明

最近,在学习Hive基础知识时,遇到了遇到了Case When Else End语法,以前学习mysql时忽略了这部分知识点,现总结一下相关的知识给大家。

首先练习一个例子如下:

一、学生课程成绩统计

1) 建表

use hiveDemo;
CREATE TABLE `course` (
  `id` int,
  `sid` int ,
  `course` string,
  `score` int 
) ;

2) 插入数据

// 字段解释:id, 学号, 课程, 成绩
INSERT INTO `course` VALUES (1, 1, 'yuwen', 43);
INSERT INTO `course` VALUES (2, 1, 'shuxue', 55);
INSERT INTO `course` VALUES (3, 2, 'yuwen', 77);
INSERT INTO `course` VALUES (4, 2, 'shuxue', 88);
INSERT INTO `course` VALUES (5, 3, 'yuwen', 98);
INSERT INTO `course` VALUES (6, 3, 'shuxue', 65);

MySQL中Case When用法及说明

3) 需求

求:所有数学课程成绩 大于 语文课程成绩的学生的学号

最开始的想法是打算同过自连接的方式来解决,后来咨询了公司的同事,知道了可以case可以用来解决此问题。

a. 使用case...when...将不同的课程名称转换成不同的列。 

create view tmp_course_view as
select sid, case course when "shuxue" then score else 0 end  as shuxue,  
case course when "yuwen" then score else 0 end  as yuwen from course;  
 
select * from tmp_course_view;

 MySQL中Case When用法及说明

b. 以sid分组合并取各成绩最大值

create view tmp_course_view1 as
select aa.sid, max(aa.shuxue) as shuxue, max(aa.yuwen) as yuwen from tmp_course_view aa group by sid;  
 
select * from tmp_course_view1;

c. 比较结果

select * from tmp_course_view1 where shuxue > yuwen;

MySQL中Case When用法及说明

二、Case When Else End用法详解

1) 更新

update table  
set 字段1=case     
    when 条件1 then 值1       
    when 条件2 then 值2      
    else 值3      
    end     
where    …… 

2) 查询

select 字段1, 字段2,       
    case 字段3     
    when 值1 then 新值       
    when 值2 then 新值      
    end as 重新命名字段3的名字       
from table      
where ……      
order by ……  

在一般的SELECT中,其语法如下:   

sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁SELECT <myColumnSpec> =
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁CASE
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <A> THEN <somethingA>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <B> THEN <somethingB>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁ELSE <somethingE>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁END

CASE可能是 SQL 中被误用最多的关键字之一。

虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。

例如,你可以在 WHERE、GROUP BY和Order By子句中使用CASE。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中Case When用法及说明

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL中Case When用法及说明

目录一、学生课程成绩统计1) 建表2) 插入数据3) 需求二、Case When Else End用法详解1) 更新2) 查询总结最近,在学习Hive基础知识时,遇到了遇到了Case When Else End语法,以前学习mysql时忽略
2022-12-29

MySQL中Case When用法及说明

这篇文章主要介绍了MySQL中Case When用法及说明,具有很好的参考价值,希望对大家有所帮助。
2022-12-29

MySQL 的CASE WHEN 语句使用说明

在MySQL中,CASE WHEN语句用于对一系列条件进行判断,并根据不同的条件返回不同的结果。语法如下:```CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...W
2023-08-17

MySQL: case when 用法

在做数据分析的时候,需要从数据库中查找数据并进行分析展示,准确的数据查询结果有利于后期简洁有效的分析。在此期间用到了 mysql中的case when,记录一下case when的用法。CASE语句为多分支语句结构,该语句首先从WHEN后的VALUE中查找与C
MySQL: case when 用法
2019-10-16

mysql中case when then 的用法

mysql 中的 case when then 语句用于根据条件执行不同的动作:指定条件:使用 when 子句指定要评估的条件。执行动作:条件为真则执行 then 子句中的动作。提供默认结果:else 子句指定所有条件为假时要执行的动作。该
mysql中case when then 的用法
2024-08-01

mysql中case when的用法是什么

在MySQL中,CASE WHEN语句是一种用于在查询中实现条件逻辑的方法。它类似于编程语言中的switch语句,可以根据不同的条件执行不同的逻辑。CASE WHEN语句的一般语法如下:CASEWHEN condition1 THEN
mysql中case when的用法是什么
2024-04-09

mysql中case when怎么使用

mysql 中的 case when 语句是一种条件语句,用于根据指定的条件对数据执行不同的操作。其语法为:case when condition1 then result1 when condition2 then result2...
mysql中case when怎么使用
2024-05-30

MySQL中with rollup的用法及说明

这篇文章主要介绍了MySQL中with rollup的用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

关于sql中case when用法

在SQL中,CASE WHEN语句是一种条件表达式,用于根据指定的条件返回不同的结果。它的基本语法如下:CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELS
关于sql中case when用法
2024-04-09

MySQL中case when的两种基本用法及区别总结

mysql中的case when有用两种用法,官方文档中的说明如下:用法一:CASE case_valueWHEN when_value THEN statement_list[WHEN when_value THEN statemen
2023-05-05

MySQL中case when的两种基本用法及区别总结

在mysql中casewhen用于计算条件列表并返回多个可能结果表达式之一,下面这篇文章主要给大家介绍了关于MySQL中case when的两种基本用法及区别的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
2023-05-18

编程热搜

目录