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

结果截图

相关推荐
可可苏饼干1 分钟前
NoSQL 与 Redis
数据库·redis·笔记·学习·nosql
不穿格子的程序员10 分钟前
MySQL篇3——MySQL深度揭秘:MySQL 索引失效情况与日志机制(redolog undolog binlog)介绍
数据库·mysql·索引失效·日志机制
麦芽糖021914 分钟前
若依管理系统去掉Redis相关配置
数据库·redis·缓存
数据库学啊14 分钟前
国产时序数据库厂家哪家好
数据库·时序数据库
数据库学啊14 分钟前
好用的国产时序数据库哪个专业
数据库·时序数据库
数据库学啊16 分钟前
口碑好的国产时序数据库企业
数据库·时序数据库
noravinsc20 分钟前
如何清理全部已安装的mysql,之后重新安装mysql 8
数据库·mysql
jyyyx的算法博客24 分钟前
LeetCode 面试题 16.22. 兰顿蚂蚁
算法·leetcode
用户62799471826225 分钟前
南大通用GBase 8a堆栈收集方式汇总
数据库
va学弟29 分钟前
初识SQL
数据库·sql