# 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