LeetCode刷题笔记(SQL-002)

626. Exchange Seats

SQL Schema(表结构)

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

注意事项:If the number of students is odd, there is no need to change the last one's seat.

解题方法:

select 
case when id % 2 = 0 then id - 1 
     when id % 2 = 1 and id =(select max(id) from seat ) then id 
     else id + 1 end id,student 
from seat order by id ;

 

你可能感兴趣的:(SQL,Leetcode,SQL)