我得到了一组这样的结果:
| id |
| 1 |
| 2 |
| 3 |
| 4 |
我想要
| id |
| 4 |
| 1 |
| 2 |
| 3 |
使用SQL脚本是否有任何优雅的方法来实现这一目标?
答案 0 :(得分:6)
您可以使用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小提琴(我刚发现它存在) http://sqlfiddle.com/#!3/a7f15/5
答案 1 :(得分:0)
好的,我会抓住SQL。
select case when id > 3 then 0
else 1
end
, id
from mytable
order by 1,2