LeetCode626:换座位

问题626:小美是一所中学的信息科技老师,她有一张seat座位表,平时用来储存学生名字和与他们相对应的座位id。其中,纵列的id是连续递增的。小美想改变相邻俩学生的座位,如果学生人数是奇数,则不需要改变最后一个同学的座位。你能不能帮她写一个SQL查询语句,来输出小美想要的结果呢?

示例:

假如数据输入的是上表,则输出结果如下:

完整代码:

SELECT tab1.id, tab2.student
FROM seat AS tab1, seat AS tab2
WHERE (tab1.id = tab2.id - 1 AND tab1.id % 2 = 1)
OR (tab1.id = tab2.id + 1 AND tab1.id % 2 = 0)
OR (tab1.id % 2 = 1 
    AND tab1.id = (SELECT COUNT(id) FROM seat)
    AND tab2.id = (SELECT COUNT(id) FROM seat))
ORDER BY tab1.id;

运行结果:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。