180608_exchange_data

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?

id student
1 Abbot
2 Doris
3 Emerson
4 Green
5 Jeames

For the sample input, the output is:

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.

SELECT if(id < (select count(*) from seat), if(id mod 2 = 0, id - 1, id + 1), if(id mod 2 = 0, id - 1, id)) as id, student
FROM seat
ORDER BY id ASC
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容