LeetCode:626. Exchange Seats

2260 단어 LeetCode
링크:https://leetcode.com/problems/exchange-seats/description/
제목: 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.
사고방식: case의 운용, 최대치가 홀수라면 위치를 바꾸지 않도록 주의하세요.
Answer:
select case when id = (select max(id) from seat) and mod(id, 2) = 1 then id
            when id < (select max(id) from seat) and mod(id, 2) = 1 then id + 1
            when mod(id, 2) = 0 then id - 1
            end as id,
            student
from seat
order by
id

좋은 웹페이지 즐겨찾기