摘要:本文将带你了解exchange服务器之Exchange Seats,希望本文对大家学Exchange有所帮助。
本文将带你了解exchange服务器之Exchange Seats,希望本文对大家学Exchange有所帮助。
<
题目地址:https://leetcode.com/problems/exchange-seats/description/
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 |
+---------+---------+123456789
For the sample input, the output is:
+---------+---------+
| id | student |
+---------+---------+
| 1 | Doris |
| 2 | Abbot |
| 3 | Green |
| 4 | Emerson |
| 5 | Jeames |
+---------+---------+123456789
Note:
If the number of students is odd, there is no need to change the last one’s seat.
SELECT
*
FROM
(
SELECT id - 1 AS id, student
FROM seat
WHERE id MOD 2 = 0 /*id是偶数了*/
UNION
SELECT id + 1 AS id, student
FROM seat
WHERE id MOD 2 = 1 AND (SELECT MAX(id) FROM seat) MOD 2 = 0 /*总数是偶数,id是奇数*/
UNION
SELECT id + 1 AS id, student
FROM seat
WHERE id MOD 2 = 1 AND (SELECT MAX(id) FROM seat) MOD 2 = 1 AND id < (SELECT MAX(id) FROM seat) /*总数是奇数,id是奇数*/
UNION
SELECT id, student
FROM seat
WHERE (SELECT MAX(id) FROM seat) MOD 2 = 1 AND id = (SELECT MAX(id) FROM seat) /*总数是奇数,id最大的不动*/
) AS tt
ORDER BY
tt.id
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Exchange频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号