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

结果截图

相关推荐
元亓亓亓41 分钟前
考研408--操作系统--day4--进程同步&互斥&信息量机制
java·数据库·考研·操作系统·408
武子康43 分钟前
Java-169 Neo4j CQL 实战速查:字符串/聚合/关系与多跳查询
java·开发语言·数据库·python·sql·nosql·neo4j
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
MyBatis Plus中执行原生SQL语句方法
python·sql·mybatis
现在,此刻1 小时前
高可用与高性能数据库配置实践分析(pgSql && clickhouse)
数据库·clickhouse
谅望者2 小时前
数据分析笔记02:数值方法
大数据·数据库·笔记·数据挖掘·数据分析
dreams_dream2 小时前
django模型数据查询
数据库·django·sqlite
一匹电信狗2 小时前
【C++11】Lambda表达式+新的类功能
服务器·c++·算法·leetcode·小程序·stl·visual studio
在等晚安么2 小时前
力扣面试150题打卡
算法·leetcode·面试
郏国上2 小时前
由于图片视频替换和删除导致阿里云上存在大量系统不再使用的文件如何处理
数据库·mongodb·阿里云
百***27112 小时前
UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
数据库·sql·oracle