我得到了一组这样的结果:
| id |
| 1 |
| 2 |
| 3 |
| 4 |
我想得到
| id |
| 4 |
| 1 |
| 2 |
| 3 |
有没有什么优雅的方法可以使用 SQL 脚本实现这一点?
最佳答案
您可以使用 mod 运算符,%
到 ORDER BY
DECLARE @maxId AS INT
SELECT @maxId = MAX(Id) FROM MyTable
SELECT id FROM MyTable
ORDER BY Id % @maxId
你可以通过添加到Id来获得进一步的轮换,即
ORDER BY (Id + 1) % @maxId
得到你
3
4
1
2
Working SQL Fiddle(我刚刚发现它存在) http://sqlfiddle.com/#!3/a7f15/5
关于mysql - 使用 MySQL 创建循环排列的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10209706/