MySQL基础练习题11-换座位

news2024/12/22 12:15:40

题目:交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按 id 升序 返回结果表。

准备数据

分析数据

方法一:利用power函数对id进行交换,得出的答案只有0或1

第一步:用power()函数将id号交换

第二步:按照交换后的顺序进行排序

方法二:利用if函数嵌套判断奇偶


题目:交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按 id 升序 返回结果表。

准备数据

## 创建库
create database db;
use db;

## 创建表(seat)
Create table If Not Exists Seat (id int, student varchar(255));

## 向表里插入数据
Truncate table Seat;
insert into Seat (id, student) values ('1', 'Abbot');
insert into Seat (id, student) values ('2', 'Doris');
insert into Seat (id, student) values ('3', 'Emerson');
insert into Seat (id, student) values ('4', 'Green');
insert into Seat (id, student) values ('5', 'Jeames');

 分析数据

  • 如果学生人数为偶数,则交换两个连续的学生的座位号。即1号与2号交换,3号与4号交换。

  • 如果学生人数为奇数,最后一名学生不需要交换座位,但是前边的连续座位号交换。

方法一:利用power函数对id进行交换,得出的答案只有0或1。

第一步:用power()函数将id号交换
## 第一步:POWER(number,power)-POWER(底数,指数)
select id + 1 - 2 * power(0,id%2) from seat; 

说明:POWER(number,power)-POWER(底数,指数)

idid%2power(0,id%2)
id + 1 - 2 * power(0,id%2)
11%2=10^1=01+1-2*02
22%2=00^0=12+1-2*11
33%2=10^1=03+1-2*04
44%2=00^0=14+1-2*13
55%2=10^1=05+1-2*06
第二步:按照交换后的顺序进行排序
## 第二步:根据第一步得出的顺序进行排序
select
    row_number() over(order by (id + 1 - 2 * power(0,id%2))) as id,
    student
from
    seat;

方法二:利用if函数嵌套判断奇偶。

select
    #若id为偶数,则id减一,若id为奇数,则id加一
    if(id % 2 = 0, id - 1,
        #如果id为该表的最后一个id且为奇数,则id不加一
        if(id = (select count(id) from seat), id, id + 1)
    ) as id, student
from seat
order by id;

--什么牛不会吃草?

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

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

相关文章

HDBaseT远距离无压缩传输系统源头厂家

HDBaseT双绞线延长器是一款集成HDBaseT的远距离高清信号无压缩、无延时传输器,HDMI信号从接收端输出, 信号分辨率高达4Kx2K可以通过单根CAT5/CAT6网线将信号长距离传输高清无压缩音视频信号, 采用单根网线最远可传输70/100米, …

Linux 安装 nacos 2.4.0

参看:Nacos 快速开始 2.4.0 版本是Nacos2.X的又一个功能性版本,此版本的更新主要在 Nacos 的安全性、扩展功能和改进用户体验方面的持续努力,为用户提供了更安全、更灵活的服务管理平台。版本主要的功能如下: 增强安全性&#xf…

Duix AI 太上瘾,让我熬夜体验的AI女友

✨点击这里✨:🚀原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!) Duix AI 太上瘾,让我熬夜体验的AI女友 开启 Duix AI 女友的奇妙之旅_ Hi,这…

C++:类和对象2

1.类的默认成员函数 默认成员函数就是用户没有显示实现编译器会自动生成的成员函数称为默认成员函数。一个类,我们在不写的情况下编译器会默认生成6个默认成员函数,分别是构造函数,析构函数,拷贝构造函数,拷贝赋值运算…

前缀和与差分大总结!!!C++

学了忘忘了学o(╥﹏╥)o 题源acwing 讲解前缀和一维,用于序列二维,用于矩阵 讲解差分什么是差分数组?一维差分数组二维差分数组 题目一:前缀和题目二:子矩阵的和题目三:差分题目四:差分矩阵 讲…

案例分享-国外轻松感UI设计赏析

国外UI设计倾向于采用简洁的布局、清晰的排版和直观的交互方式,减少用户的认知负担,从而营造出轻松的使用体验。这种设计风格让用户能够快速找到所需信息,降低操作难度,提升整体满意度。 在注重美观的同时,更加重视用户…

便携移动工作站,端侧 AI 大模型设备折腾笔记:ROG 幻 X 和 4090 扩展坞

为了本地测试和开发更丝滑,最近入手了一套新设备 ROG 幻 X Z13 和 ROG XG Mobile 4090 扩展坞。 基于这套设备,我搭了一套 Windows x WSL2 x CUDA 的开发环境。分享一下折腾记录,或许对有类似需求的你也有帮助。 写在前面 最近因为各种事情…

【MySQL】索引 【下】{聚簇索引VS非聚簇索引/创建主键索引/全文索引的创建/索引创建原则}

文章目录 1.聚簇索引 VS 非聚簇索引经典问题 2.索引操作创建主键索引唯一索引的创建普通索引的创建全文索引的创建查询索引删除索引索引创建原则 1.聚簇索引 VS 非聚簇索引 之前介绍的将所有的数据都放在叶子节点的这种存储引擎对应的就是 InnoDB 默认存储表数据的存储结构。 …

【大模型系列】Video-LaVIT(2024.06)

Paper:https://arxiv.org/abs/2402.03161Github:https://video-lavit.github.io/Title:Video-LaVIT: Unified Video-Language Pre-training with Decoupled Visual-Motional TokenizationAuthor:Yang Jin, 北大&#x…

[Office] Word 特殊字符

0 打开“特殊字符集” 依次选择:Insert -> Symbol -> More Symbol 1 带圈编号 字体Font选择Wingdings

嵌入式Linux:符号链接(软链接)和硬链接

目录 1、符号链接(软链接) 2、硬链接 3、link()函数 4、symlink()函数 5、readlink()函数 在 Linux 系统中,符号链接(软链接)和硬链接是两种创建文件链接的方法。理解它们的区别和使用场景对于文件系统的管理非常…

错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配

这个问题实际上网上都有解法,但是可能没有那么的清楚,大家在各种问,我既然搞定了,就分享给大家吧网上解法: 开发调试需要另外创建开发证书和描述文件,描述文件同时绑定开发设备解读: 实际上这句…

举例详细学习和分析后端业务逻辑代码开发思路

在此之前,先来补充一下上一篇文章的一点内容:上一篇文章点击此处详看 对于画线的这句话,来详细解释一下吧! 这里面说,对于service服务层,如果我们所需要实现的业务比较简单的话可以直接在...service接口里面…

Spring事件监听的核心机制及其原理

Spring事件监听 Spring的事件监听机制主要由三大核心部分组成即事件,监听器和播放器三部分组成。 事件的发布是通过spring当中的pulishEvent方法实现。事件监听实现是通过监听器监听了对应事件的监听器来实现的。 事件监听的作用:为系统业务之间进行一…

一种可以灵活、高速测试半导体测试中使用的老化板的系统

本文介绍了一种可以灵活、高速测试半导体测试中使用的老化板的系统。 定义:Burn-in Board Testing System是一种通过模拟极端使用条件(如高温、高压、高湿等)来加速半导体器件老化,并检测其潜在失效的测试系统。目的: …

如何使用 Puppeteer 绕过 Akamai

摘要: 本文深入探讨了在面对Akamai强大防护下的网页抓取挑战时,如何运用Puppeteer这一强大的Node.js库,通过模拟真实用户行为、动态请求处理等策略,高效且隐蔽地收集数据。我们将一步步揭开Puppeteer绕过Akamai的神秘面纱&#x…

红酒标签设计:艺术与品味的结合

在红酒的世界里,每一瓶酒都如同一位优雅的舞者,在酒柜的舞台上静静诉说着自己的故事。而红酒的标签,则是这位舞者身上较华丽的舞裙,它不仅是红酒的身份证明,更是艺术与品味的很好结合。今天,我们就来聊聊红…

计网 - 传统的类网络划分 vs 无类别域间路由CIDR

文章目录 A、B、C 类网络的基本概念和历史背景A 类网络B 类网络C 类网络实际应用场景 CIDR(无类别域间路由)基本概念CIDR 的表示方法计算 CIDR 网络段的步骤步骤 1:确定网络掩码步骤 2:计算网络地址步骤 3:计算广播地址…

二刷代码随想录训练营Day 11| 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素、总结

1.逆波兰表达式 题目链接/文章讲解/视频讲解&#xff1a;代码随想录 代码&#xff1a; class Solution { public:int evalRPN(vector<string>& tokens) {stack<long long> st;for(int i 0; i < tokens.size(); i){if(tokens[i] "" || tokens[i…

横看成岭侧成峰,山的叫法何其多。丘 陵 峰 岭 峦 岑 峭 嶂 岳 屺 岵 峡 岬 冈 崮 麓 顶 梁 包 坡 尖

文章目录 引言顶、梁、包、坡、尖山脚叫麓较低而平的山脊叫冈(岗)四周陡峭顶上较平的山叫崮(g)两山之间,有水为峡两山之间,无水为岬(jiǎ)没有草木的山叫屺(qǐ)多草木的山叫岵(h)高而险的山叫嶂高而大的山叫岳高而陡的山叫峭(qio)小而高的山叫岑小而尖的山叫峦高…