LeetCode 626. 换座位

题目链接:LeetCode 626. 换座位

题目描述

表名:Seat
在这里插入图片描述

编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。
按 id 升序 返回结果表。
查询结果格式如下所示。

示例1:
在这里插入图片描述

题目分析

如果是偶数行,前移一行。
如果是奇数行,后移一行,如果是最后一行(id = count(1))则原地不动。

代码

SELECT (CASE
--     如果是奇数且是最后一位,则ID不动
            WHEN MOD(id, 2) = 1 AND id = (SELECT COUNT(*) FROM seat) THEN id
--     如果是奇数,id+1
            WHEN MOD(id, 2) = 1 THEN id + 1
--     如果是偶数,id-1
            ElSE id - 1
--     结束,起别名
    END) AS id,
       student
FROM seat
--     按ID升序排列
ORDER BY id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值