题目描述
有一张 seat 座位表,用来储存学生名字和与他们相对应的座位 id。纵列的 id 是连续递增的想改变相邻俩学生的座位。
正确答案
select
(case
when id % 2=1 and id=(select count(1) from seat) then id
when id % 2=1 then id+1
else id-1
end) id,student
from seat
order by id asc;
思路
当id是奇数,id+1,偶数id-1。考虑特殊情况,如果最后一个人的id是奇数保持id不变。
注意
case when 容易丢end
id=(select count(1) from seat)把id丢掉=了结果报错