力扣高频SQL 50题(基础版)第四十四题之626. 换座位

文章目录

力扣高频SQL 50题(基础版)第四十四题之626. 换座位

626. 换座位

题目说明

表: Seat

Plaintext 复制代码
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| student     | varchar |
+-------------+---------+
id 是该表的主键(唯一值)列。
该表的每一行都表示学生的姓名和 ID。
id 是一个连续的增量。

编写解决方案来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。

id 升序 返回结果表。

思路分析

  • id%2=0 ,判断是否为偶数,为偶数则id-1(例如id=2时,id%2=0,则id-1后id为1)
  • 从表中选择最大id,让其返回原值
  • 否则,让id+1(奇数)

实现过程

准备数据

SQL 复制代码
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')

实现方式

SQL 复制代码
select case
           when id%2=0 then id-1
           when id=(select max(id) from Seat) then id
       else id+1
       end
       id,student from Seat
order by id;

结果截图

相关推荐
姓刘的哦4 小时前
Qt中的QWebEngineView
数据库·c++·qt
心随_风动5 小时前
Ubuntu 文件复制大师:精通cp命令完整指南
数据库·ubuntu·postgresql
不要再敲了5 小时前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
hn小菜鸡6 小时前
LeetCode 3643.垂直翻转子矩阵
算法·leetcode·矩阵
YuTaoShao8 小时前
【LeetCode 每日一题】3000. 对角线最长的矩形的面积
算法·leetcode·职场和发展
恣艺8 小时前
Redis列表(List):实现队列/栈的利器,底层原理与实战
数据库·redis·list
秋难降8 小时前
零基础学习SQL(十一):SQL 索引结构|从 B+Tree 到 Hash,面试常问的 “为啥选 B+Tree” 有答案了
数据库·后端·mysql
代码的余温8 小时前
Linux内核调优实战指南
linux·服务器·数据库
almighty279 小时前
C# DataGridView表头自定义设置全攻略
数据库·c#·winform·datagridview·自定义表头
愚润求学9 小时前
【贪心算法】day8
c++·算法·leetcode·贪心算法