尝试提出一个查询,查找包含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。
答案 0 :(得分:3)
假设数字总是在增加,而不是重复
select *
from mynumbers
where nbr4 - nbr1 = 3
or nbr5 - nbr2 = 3
or nbr6 - nbr3 = 3
我冒昧地将其简化为这样一个事实:对于连续6个连续的数字,必须已有一系列连续4个数字。