2009-07-24 17 views
0

3つの数字1,2,3があると考えると、SQLで回転するロジックを作成したいと思っています。次に1,2番目のものが次に選択されます3,1,2,3など.... 。もし4つの数字が1,2,3,4,2,3の次に3,4次のように1,2など...私はSQL Server.Pleaseに助けてください番号を生成したいと思います。SQLローテート番号

+1

私はあなたの例で共通のパターンを見ることができません。それらをもう一度チェックして、あなたが望むものの完全なリストを与えてください( "やらない"を使わないでください)。 –

+0

私はパターンが毎週2つの数字を選び、周りを回っていると思います。 (1,2)、(3,1)、(2,3)のように「回転した」1,2,3,1,2,3,1,2,3、 、...; 4つの数字:1,2,3,4,1,2,3,4、...(1,2)、(3,4)、(1,2)、...と同様にピッキングに似ています次のペアは毎週です。 – dave

答えて

1

あなたはこのように実行します。

declare @cnt int, @ofs int 

select @cnt = count(*) from TheTable 

set @ofs = (((@week - 1) * 2) % @cnt) + 1 

select * from TheTable 
where Number between @ofs and @ofs + 1 
union all 
select * from TheTable 
where Number between @ofs - @cnt and @ofs - @cnt + 1 
0

はモジュラス結果を除いて1と自分の限界の間にある番号テーブルからすべてのエントリを選択し、あなたのエポック日からの週の数の係数を取得します。