2009-07-24 50 views
0

我想在sql中创建一个旋转逻辑,就像考虑有3个数字1,2,3然后第一个星期1,2将选择下一个3,1下一个2,3等....如果有4个数字1,2,3,4然后1,2下一个3,4下一个1,2等等...就像我想在sql server中生成数字。请帮助我。SQL旋转数字

+1

我看不到您的示例中的常见模式。请再次检查并提供您想要的完整列表(不要使用“等等”)。 – 2009-07-24 08:11:30

回答

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和除模结果你的极限之间的所有条目。