2

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

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

克洛姆名称是: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 个(1 到 52)中的 6 个数字的所有可能组合。我想做的是消除具有四个或更多连续数字的行。所以我不确定上面是否能解决问题。对于那些询问的人,我使用的是 sql server 2008 R2。

4

1 回答 1

3

Assuming the numbers are always increasing, and not repeating

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

I took the liberty of simplifying it to the fact that for a series of 6 consecutive numbers, there must already be a series of 4 consecutive numbers.

于 2012-11-15T21:20:54.463 回答