简化我的问题 - 我有 6 位字段,它为客户分配从 1 到 999999 的数字。大多数数字是按顺序分配的,但用户可以手动分配数字,并且此功能始终以不可预测的模式使用范围。
我们现在需要识别尚未分配的数字(简单) - 然后将其转换为多个范围(似乎很复杂)。
例如,给定以下数字已分配
1,2,3,4,5,
1001,1002,1003,1004,1005,
999101,999102,999103,999104,999105
我需要一组结果范围,例如
Start End
6 1000
1006 999100
999106 999999
到目前为止,我的想法是这可能太复杂而无法在查询中编写 - 最好通过从 1 循环到 999999 并将范围添加到临时表来实现。
有兴趣听到我可以想象的想法,有几种方法。我正在使用 SQL Server 2008 R2。这是一次性练习,因此即使是非 SQL 解决方案也可能是合适的,例如,如果这在 Excel 中很容易完成。