626. 換座位
題目要求兩兩對換,最后一行 id 如果是奇數則保持原有位置
那么我們看前四行,每兩行對換即奇數行要+1, 而偶數行需要-1進行位置互換
那怎么列式子?
我們拿5,6 行做例子,我們還可以知道,5 % 2 = 1,6 % 2 = 0,0 的 0次方 = 1
對于 5:id = id + 1 = id + 1 - 2 * 0^(id&1)
對于 6:id = id - 1 = id + 1 - 2 * 0^(id&1)
最后在用ROW_NUMBER()按順序生成 id,連續分配1到n的整數
select ROW_NUMBER() over (order by (id + 1 - 2*POWER(0, id&1))) as id,
student
from Seat;

浙公網安備 33010602011771號