Skip to content

Commit

Permalink
Exchange seats
Browse files Browse the repository at this point in the history
  • Loading branch information
malbarisumit committed Feb 2, 2021
1 parent 1db8c14 commit f35f979
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions LeetCode_626_Exchange Seats.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Create table If Not Exists seat(id int, student varchar(255))
Truncate table seat
insert into seat (id, student) values ('1', 'Abbot')
insert into seat (id, student) values ('2', 'Doris')
insert into seat (id, student) values ('3', 'Emerson')
insert into seat (id, student) values ('4', 'Green')
insert into seat (id, student) values ('5', 'Jeames')


-- 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.

/* Write your T-SQL query statement below */


select id, case
when id%2=0 then (select student from seat where id =i.id-1)
when id%2!=0 and id < (select count(*) from seat) then (select student from seat where id=i.id+1)
else student
end as student
from seat i

0 comments on commit f35f979

Please sign in to comment.