美文网首页
Leetcode_SQL-中等-626-换座位

Leetcode_SQL-中等-626-换座位

作者: Gaafung峰 | 来源:发表于2020-03-04 22:26 被阅读0次

问题


小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。

其中纵列的 id 是连续递增的

小美想改变相邻俩学生的座位。

你能不能帮她写一个 SQL query 来输出小美想要的结果呢?

示例:

id student
1 Abbot
2 Doris
3 Emerson
4 Green
5 Jeames

假如数据输入的是上表,则输出结果如下:

id student
1 Doris
2 Abbot
3 Green
4 Emerson
5 Jeames

注意:
如果学生人数是奇数,则不需要改变最后一个同学的座位。

准备


create database leecote626;


use leecote626;


create table seat (
id int(20),
student varchar(20));


insert into seat values
(1,'Abbot'),
(2,'Doris'),
(3,'Emerson'),
(4,'Green'),
(5,'Jeames');

解答


#方法一:
select
    if(id%2=0,
        id-1,
        if(id=(select count(distinct id) from seat),
            id,
            id+1))
    as id,student
from seat
order by id;


#方法二:
SELECT
    (CASE
        WHEN MOD(id, 2) != 0 AND counts != id THEN id + 1
        WHEN MOD(id, 2) != 0 AND counts = id THEN id
        ELSE id - 1
    END) AS id,
    student
FROM
    seat,
    (SELECT
        COUNT(*) AS counts
    FROM
        seat) AS seat_counts
ORDER BY id ASC;


#方法三:
SELECT
    s1.id, COALESCE(s2.student, s1.student) AS student
FROM
    seat s1
        LEFT JOIN
    seat s2 ON ((s1.id + 1) ^ 1) - 1 = s2.id
ORDER BY s1.id;

相关文章

  • Leetcode_SQL-中等-626-换座位

    问题 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。 ...

  • 换座位

    骑天大胜 焦点少年班坚持分享第326天 星期三 2018.6.6 今天是个好日子,我的同学终于愿意用五个表扬和我做...

  • 换座位

    你,为什么突然说,想换座位了。 白净,上学期的你分明不是如此的,乍一转眼,时光匆匆,你也是说变就变,再见到你...

  • 换座位

    今天,我们在教室里换座位。 我和我的好哥们儿坐在了一起,嘿嘿嘿。我们俩人在一起挑组长,挑的是我们班里面最乐观...

  • 换座位

    今天周一,按照班级规定,我们要轮换座位。这已经是第三次了,第一次亲手一桌一桌教孩子们如何换,第二次,半放手状...

  • 换座位

    语老真是太善良了。当初为什么要让他们自己挑选座位呢?我想如果没有,也不至于搞出今天这种事情了。 语老前两天就说了,...

  • 换座位

    一般来说,我每个月给同学们换一次座位。因为以前读书的时候,每次对换座位都比较期待,当然如果旁边坐着自己心底喜欢的男...

  • 换座位

    一天清晨,小刺猬,小兔,乌龟和松鼠,它们坐在椅子上看书。小刺猬看见小兔子旁边有一个空位,它想和小兔子一起坐!小刺猬...

  • 换座位

    如果在一个数组里面的,交换位置,可以用for循环遍历,然后通过中间变量实现交换,题目要求计奇偶交换,必须想办法拿到...

  • 换座位

    今天我们三年级所有的班级都换座位了,换成了四人一组的座位,我们组有我、邵雷俊、郭雨萌、张欣怡我们四个,...

网友评论

      本文标题:Leetcode_SQL-中等-626-换座位

      本文链接:https://www.haomeiwen.com/subject/ybpwlhtx.html