Exchange Seats

medium database sql

Problem

Seat(id, student). Swap names in adjacent seat pairs (1↔2, 3↔4, …). The last odd seat stays.

Inputs=[(1,'A'),(2,'D'),(3,'E'),(4,'C'),(5,'B')]
Output[(1,'D'),(2,'A'),(3,'C'),(4,'E'),(5,'B')]
Pairs (1,2) and (3,4) swapped; 5 unchanged.

SELECT (CASE WHEN MOD(id,2)=1 AND id = (SELECT MAX(id) FROM Seat) THEN id
             WHEN MOD(id,2)=1 THEN id+1
             ELSE id-1 END) AS id, student
FROM Seat
ORDER BY id;
Time: O(n) Space: O(n)