SQL/SQL문풀
[MY SQL] id의 순서 변경하기
data_2080
2025. 2. 4. 21:51
728x90
출처: [leetcode - SQL50] : 626. Exchange Seats
문제: 연속된 학생의 좌석 ID를 교환(학생 수가 홀수인 경우 마지막은 교환없이 반환)
1. 홀수, 짝수 이용하기
1) id를 2로 나눴을 때 나머지를 기준으로 홀수면 id +1을, 짝수면 id-1을 해서 순서를 변경
2) id가 max값인 경우 else로 그대로 출력
SELECT
CASE
WHEN id % 2 = 1 AND id + 1 <= (SELECT MAX(id) FROM Seat) THEN id + 1
WHEN id % 2 = 0 THEN id - 1
ELSE id
END AS id,
student
FROM Seat
ORDER BY id;
2. IF 활용하기
1번과 동일하게 홀수, 짝수를 활용하는 방법
=> case when이 아닌, if를 활용하는 방법
SELECT
IF(ID % 2 = 0, ID - 1, IF(ID = (SELECT MAX(ID) FROM SEAT), ID, ID + 1)) AS ID,
STUDENT
FROM SEAT
ORDER BY ID;
728x90