次のような一連の結果が得られました。
| 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