LeetCode 0626 - Exchange Seats

2021-08-11 11:09:30 浏览数 (3)

Exchange Seats

Desicription

Mary is a teacher in a middle school and she has a table seat storing students’ names and their corresponding seat ids.

The column id is continuous increment.

Mary wants to change seats for the adjacent students.

Can you write a SQL query to output the result for Mary?

代码语言:javascript复制
 --------- --------- 
|    id   | student |
 --------- --------- 
|    1    | Abbot   |
|    2    | Doris   |
|    3    | Emerson |
|    4    | Green   |
|    5    | Jeames  |
 --------- --------- 

For the sample input, the output is:

代码语言:javascript复制
 --------- --------- 
|    id   | student |
 --------- --------- 
|    1    | Doris   |
|    2    | Abbot   |
|    3    | Green   |
|    4    | Emerson |
|    5    | Jeames  |
 --------- --------- 

Note:

If the number of students is odd, there is no need to change the last one’s seat.

Solution

代码语言:javascript复制
select
if(id = (select count(*) from seat), if(id % 2 = 0, id - 1, id), if(id % 2 = 0, id - 1, id   1)) as id, student from seat order by id;

0 人点赞