当前位置:网站首页>自动化办公案例:如何自动生成期数据?
自动化办公案例:如何自动生成期数据?
2022-07-31 02:27:00 【猴子数据分析】
【面试题】
有一张“学生学期信息表”,包含4个字段:学生id、学生姓名、学期、班级名称。
【问题】目前只有高一上学期的信息,需要自动填充完剩余学期的信息。
1)学生在升学的过程中不换班,例如:高一念了1班后,高二高三也是1班;
2)2013-2014-1 代表上学期,2013-2014-2 代表下学期。
【解题步骤】
1. 问题分析
学生的学期信息规律性很强,根据已有的一条数据,我们很容易写出“张三”高中剩余五个学期对应的信息。
那么,如何根据高一上学期的信息,在MySQL中自动生成剩余学期的信息?
我们只要使用几种字符串函数,以及UNION操作符即可。
2. 函数介绍
1)字符串替换函数REPLACE:
REPLACE(字符串,被替换字符串,替换字符串)
该函数可以解释为:在“字符串”中出现的“被替换字符串”均被“替换字符串”替换,然后返回替换后的字符串。
2)UNION操作符:
MySQL的UNION操作符用于连接两个及以上的SELECT语句的结果组合到一个结果集合中,同时会删除重复的数据。而使用UNION ALL则不会删除重复数据。
3. 获取结果
1)高一上学期:
select *
from 学生学期信息表;
返回结果为:
2)高一下学期:
由于直接替换“1”会将所有“1”换掉,所以我们将“2013-2014-1”中的“-1”替换成“-2”。
select *
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(学期,'-1','-2') as 学期,
班级名称
from 学生学期信息表;
返回结果为:
3)高二上学期:
替换年份时,如果先将“2013”换成“2014”,再去替换“2014”时,会将两个“2014”都替换掉,所以我们先将“2014”替换成“2015”。
select *
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(学期,'-1','-2') as 学期,
班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(学期,'2014','2015'),'2013','2014') as 学期,
REPLACE(班级名称,'一','二') as 班级名称
from 学生学期信息表;
返回结果为:
3)高二下学期:
在“高二上学期”的基础上,将“-1”替换成“-2”。
select *
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(学期,'-1','-2') as 学期,
班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(学期,'2014','2015'),'2013','2014') as 学期,
REPLACE(班级名称,'一','二') as 班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(REPLACE(学期,'2014','2015'),'2013','2014'),'-1','-2') as 学期,
REPLACE(班级名称,'一','二') as 班级名称
from 学生学期信息表;
返回结果为:
4)高三上&下学期:
按照以上方法,最后汇总高三学期信息。
select *
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(学期,'-1','-2') as 学期,
班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(学期,'2014','2015'),'2013','2014') as 学期,
REPLACE(班级名称,'一','二') as 班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(REPLACE(学期,'2014','2015'),'2013','2014'),'-1','-2') as 学期,
REPLACE(班级名称,'一','二') as 班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(学期,'2014','2016'),'2013','2015') as 学期,
REPLACE(班级名称,'一','三') as 班级名称
from 学生学期信息表
union
select 学生id,
学生姓名,
REPLACE(REPLACE(REPLACE(学期,'2014','2016'),'2013','2015'),'-1','-2') as 学期,
REPLACE(班级名称,'一','三') as 班级名称
from 学生学期信息表;
返回结果为:
【本题考点】
1)考查对字符串函数的了解;
2)考查对UNION操作符的了解。
️点击「阅读原文」
免费报名 数据分析训练营
边栏推荐
- Classic linked list OJ strong training problem - fast and slow double pointer efficient solution
- mysql index
- Between two orderly array of additive and Topk problem
- What are the project management tools like MS Project
- Teach you how to configure Jenkins automated email notifications
- 基于opencv实现人脸检测
- MPPT太阳能充放电控制器数据采集-通过网关采集电池电压容量电量SOC,wifi传输
- STM32CUBEMX develops GD32F303 (11) ---- ADC scans multiple channels in DMA mode
- The modification is not properly placed in the sandbox, causing Apple compatibility issues
- ShardingJDBC使用总结
猜你喜欢
19.支持向量机-优化目标和大间距直观理解
基于FPGA的图像实时采集
系统需求多变如何设计
String为什么不可变?
Basic introduction to ShardingJDBC
Classic linked list OJ strong training problem - fast and slow double pointer efficient solution
"Cloud native's master, master and vulgar skills" - 2022 National New College Entrance Examination Volume I Composition
Live Preview | KDD2022 Doctoral Dissertation Award Champion and Runner-up Dialogue
tcp框架需要解决的问题
MPPT solar charge controller data collection - through the gateway acquisition capacity battery SOC battery voltage, wi-fi
随机推荐
【AcWing 62nd Weekly Game】
My first understanding of MySql, and the basic syntax of DDL and DML and DQL in sql statements
Static routing + PAT + static NAT (explanation + experiment)
Basic introduction to ShardingJDBC
The comprehensive result of the case statement, do you know it?[Verilog Advanced Tutorial]
Maximum monthly salary of 20K?The average salary is nearly 10,000... What is the experience of working in a Huawei subsidiary?
系统需求多变如何设计
The modification is not properly placed in the sandbox, causing Apple compatibility issues
12 pictures take you to fully understand service current limit, circuit breaker, downgrade, and avalanche
Drools WorkBench的简介与使用
汉源高科8路HDMI综合多业务高清视频光端机8路HDMI视频+8路双向音频+8路485数据+8路E1+32路电话+4路千兆物理隔离网络
16. Registration Center-consul
Brute Force/Adjacency List Breadth First Directed Weighted Graph Undirected Weighted Graph
ShardingJDBC usage summary
Introduction to flask series 】 【 flask - using SQLAlchemy
【shell基础】判断目录是否为空
mysql 视图
医疗影像领域AI软件开发流程
Validate XML documents
Verify the integer input