@R星校长
第2关:换座位
本关任务:改变相邻俩学生的座位。
小美是一所中学的信息科技老师,她有一张tb_Seat
座位表,平时用来储存学生名字和与他们相对应的座位 id
。
tb_Seat
表结构数据如下:
id | name |
---|---|
1 | Elon |
2 | Donny |
3 | Carey |
4 | Karin |
5 | Larisa |
现在小美想改变相邻俩学生的座位(若学生人数为奇数,则无需改变最后一位同学的座位),现在需要你编写SQL
输出小美想要的的结果。
预期输出:
id name
1 Donny
2 Elon
3 Karin
4 Carey
5 Larisa
开始你的任务吧,祝你成功!
答案:
第一种
SELECT IF(id%2=0,id-1,IF(id=5,id,id+1)) AS id,name
FROM tb_Seat ORDER BY id;
第二种
select if(id%2=0,id-1,if(id=(select max(id) from tb_Seat),id,id+1))as id,name
from tb_Seat order by id;