需要查询才能找到可能包含4个,5个或6个连续数字的行

时间:2012-11-15 21:11:20

标签: sql

尝试提出一个查询,查找包含4个,5个或6个连续数字的行。

例如:表格MyNumbers包含6列数字组合,从1到52。

Cloumn名称是:nbr1 nbr2 nbr3 nbr4 nbr5 nbr6

第一行包含:1 5 43 50 51 52

第二行包含:41 42 43 44 45 52< -----五个连续数字

第三行包含:8 14 38 39 42 50

第四行包含:1 2 3 4 15 29< -----四个连续数字

第五行包含:8 14 24 36 48 51

第六行包含:1 2 3 4 5 6< -----六个连续数字

需要提出一个查询,根据包含该行中有4个或更多连续数字的结果集找到第2,4和6行。

我创建了一个数据库,其中包含52个中的6个数字的所有可能组合(1到52)。我想要做的是消除具有四个或更多连续数字的行。所以我不确定上面会做什么。对于那些问,我使用的是sql server 2008 R2。

1 个答案:

答案 0 :(得分:3)

假设数字总是在增加,而不是重复

select *
  from mynumbers
 where nbr4 - nbr1 = 3
    or nbr5 - nbr2 = 3
    or nbr6 - nbr3 = 3

我冒昧地将其简化为这样一个事实:对于连续6个连续的数字,必须已有一系列连续4个数字。