交换位置
算法思路
- 对于所有座位 id 是奇数的学生,修改其 id 为 id+1,
- 如果最后一个座位 id 也是奇数,则最后一个座位 id 不修改。
- 对于所有座位 id 是偶数的学生,修改其 id 为 id-1。
用到的函数
- case when then else end:条件语句
- mod: 求余数
-- 方式1:
select
(case
when mod(id,2) != 0 and id != counts then id + 1
when mod(id,2) != 0 and id = counts then id
else id - 1
end
) as id,
student
from (
select count(*) from seat
) as seat_temp
order by id asc
-- 方式2:
select
if(id % 2 = 0,id - 1,
if(id=(select count(*) from seat), id, id + 1)
),
student
from seat order by id asc;