美文网首页
626. Exchange Seats

626. Exchange Seats

作者: 无敌的肉包 | 来源:发表于2018-06-28 11:24 被阅读0次

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.


Solution:

SELECT a.id as id, IFNULL(b.student,a.student) as student
FROM seat a
LEFT JOIN seat b ON case 
                    when a.id%2=1 then a.id+1=b.id
                    when a.id%2=0 then a.id-1=b.id
                    end
ORDER BY a.id

相关文章

网友评论

      本文标题:626. Exchange Seats

      本文链接:https://www.haomeiwen.com/subject/egqgyftx.html