力扣高频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;

结果截图

相关推荐
数据智能老司机13 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机13 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿14 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
无名之逆14 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s91236010114 小时前
rust 同时处理多个异步任务
java·数据库·rust
数据智能老司机14 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
hzulwy14 小时前
Redis常用的数据结构及其使用场景
数据库·redis
程序猿熊跃晖14 小时前
解决 MyBatis-Plus 中 `update.setProcInsId(null)` 不生效的问题
数据库·tomcat·mybatis
Three~stone16 小时前
MySQL学习集--DDL
数据库·sql·学习
Qi妙代码16 小时前
MYSQL基础
数据库·mysql·oracle