Sql server SQL循环数 < P>我想在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 server SQL循环数 < P>我想在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-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,您这样做: 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 @of

您这样做:

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

获取自纪元日期起的周数的模数,然后从数字表中选择除模数结果之外介于1和限制之间的所有条目。

在您的示例中,我看不到常见的模式。请再次检查它们,并给出你想要的完整列表(不要使用“等等”)。我认为模式是每周选择两个数字并循环。如果你有三个数字1,2,3,1,2,3,1,2,3,。。。“旋转”如下:(1,2),(3,1),(2,3)。。。;有4个数字:1,2,3,4,1,2,3,4,。。。as(1,2)、(3,4)、(1,2)。。。所以这更像是每周挑选下一双。