SQL/SQL 문제

[Leetcode] Exchange Seats

Lim Seung Hyun 2023. 3. 18. 19:08

Source

 

Exchange Seats - LeetCode

Can you solve this real interview question? Exchange Seats - Table: Seat +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | student | varchar | +-------------+---------+ id is the primary key column for this table. Ea

leetcode.com

 

문제

  • 연속된 두 학생의 ID를 교환하는 쿼리를 작성
    • 마지막 학생의 ID가 홀수인 경우, ID를 교환하지 않음
  • 출력한 칼럼은 id, student
  • 쿼리 결과는 ID의 오름차순으로 정렬

 

Solution (MySQL)

SELECT 
    CASE
        WHEN id % 2 = 1 AND id = (SELECT MAX(id) FROM Seat) THEN id
        WHEN id % 2 = 0 THEN id - 1
        WHEN id % 2 = 1 THEN id + 1
    END AS id,
    student
FROM Seat
ORDER BY id;
728x90