用一张seat表来存储id和name,其中id是连续递增的,要求改变相邻的两个座位。
eaample:
id | name |
---|---|
1 | 赵雷 |
2 | 钱电 |
3 | 孙风 |
4 | 李云 |
5 | 周梅 |
result:
id | name |
---|---|
1 | 钱电 |
2 | 赵雷 |
3 | 李云 |
4 | 孙风 |
5 | 周梅 |
PL/SQL query:
select (case when MOD(id,2)=0 then id-1
when MOD(id,2)=1 and id=(select max(id) from seat) then id
else id+1
end) as id,name
from seat order by id;
//MySQL写 也差不多这样
附上MOD()的用法: //就是求余
mod(a,b) 当a=0是 返回的值为0;