꿈은 데이터분석가, 취미는 계획

[MY SQL] id의 순서 변경하기 본문

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