leetcode-换座位

# Write your MySQL query statement belo
select (case
    when mod(id,2) = 1 and id != (select count(*) from seat) then id+1
    when mod(id,2) = 0 then id-1
    when mod(id,2) = 1 and id=(select count(*) from seat) then id end
) as id,student from seat order by id

题意是table中row两两交换。

解题思路:很暴力,如果id是奇数的行id+1,id是偶数的行id-1,最后一行如果是奇数就不变。最后在对这些row进行排序。

用到的一些关键字:

        case when:可以用于写条件语句。格式是: case when ........ case when ....... then         需要注意每一个case when写完后都不需要加上符号,但最后一个case when需要加上end。并且常见的,case when语句被包裹在()中外面加一层as 某属性,如上

       order by : 我的这条语句最后是order by id。很容易推测出order by是在select 后面执行的。

sql执行语句顺序;

   from->join->where->group by->having->select -> order by

     

发布了48 篇原创文章 · 获赞 0 · 访问量 4353

猜你喜欢

转载自blog.csdn.net/weixin_41327340/article/details/103706164