626

这道题很数学,需要转个弯。

 

 

 

 

 

 

 

 方法一:使用case when后,如果学生人数是奇数,则改变了最后一个同学的座位。这时我们需要使用窗口函数重新进行一次排序。

select 
row_number() over (order by new_id) id,student
from
(
select 
case
when id%2=1 then id+1
else id-1 end as new_id,student
from seat 
) a ;
posted @ 2021-06-29 20:58  luckie  阅读(268)  评论(0)    收藏  举报