小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。
其中纵列的 id 是连续递增的
小美想改变相邻俩学生的座位。
你能不能帮她写一个 SQL query 来输出小美想要的结果呢?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/exchange-seats
互换序号即可,奇数且不为最后一个数则加1,偶数则减1,若奇数且最后一个数则不变
select
(case
when id <> (select count(id) from seat) and MOD(id, 2) != 0 then id+1
when id = (select count(id) from seat) and MOD(id, 2) != 0 then id
else id-1
end)
as id,student
from seat
ORDER BY id ASC;