数据库:626. 换座位
小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。
其中纵列的 id 是连续递增的
小美想改变相邻俩学生的座位。
你能不能帮她写一个 SQL query 来输出小美想要的结果呢?
# 复数换单数
select s1.id, s2.student from seat s1 inner join (
select id, student from seat where id%2=0
) s2 on s1.id = s2.id-1
union
# 单数换复数
select s2.id, s1.student from seat s1 inner join (
select id, student from seat where id%2=0
) s2 on s1.id = s2.id-1
union
# 处理学生个数为奇数时
select s2.id, student from seat s1 inner join (
select max(id) as id from seat
) s2 on s1.id = s2.id where s2.id%2=1
order by id