我得到了一组这样的结果:
| id |
| 1 |
| 2 |
| 3 |
| 4 |
我试图得到
| id |
| 4 |
| 1 |
| 2 |
| 3 |
有没有什么优雅的方法可以使用 SQL 脚本来实现这一点?
我得到了一组这样的结果:
| 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
工作 SQL Fiddle(我刚刚发现存在) http://sqlfiddle.com/#!3/a7f15/5
好的,我会在 SQL 上试一试。
select case when id > 3 then 0
else 1
end
, id
from mytable
order by 1,2