03/04 SQL 문제풀이 - 626. Exchange Seats (Leetcode)

Data Architect / Engineer·2024년 3월 4일
1

1일_1SQL

목록 보기
45/63
post-thumbnail

문제

  • LeetCode SQL 문제
  • 626. Exchange Seats / Medium
  • 문제 내용 : [링크]


내가 작성한 Query

select a.id
        ,case when id%2 = 1 then coalesce((select student from seat where id = a.id+1), a.student)
              when id%2 = 0 then (select student from seat where id = a.id-1)
              end as student
from seat a
  • id가 홀수번인 학생과 짝수번인 학생을 swap 해 주는 문제이다.

  • CASE WHEN THEN 구문과 서브쿼리를 활용하여, id가 홀수일 때 다음 id(id+1)의 student 값을 출력한다. 그리고, id가 짝수일 때 이전 id(id-1)의 student 값을 출력한다.

  • 만약 총 인원이 홀수 명인 경우, 마지막 사람은 자리를 바꾸지 않으므로 id가 홀수일 때 다음 idstudent 값을 출력하면 null이 나온다. 이를 coalesce를 통해 다음 idstudent 값이 null이면 원래 student 값을 출력하도록 해준다.

profile
질문은 계속돼 아오에

0개의 댓글