問題を単純化する-1から始まり999999までの顧客に番号を割り当てる6桁のフィールドがあります。ほとんどの番号は順番に割り当てられますが、ユーザーは手動で番号を割り当てることができ、この機能は全体を通して予測できないパターンで使用されています。範囲。
ここで、割り当てられていない番号を特定する必要があります(簡単)。次に、これをいくつかの範囲に変換します(複雑なようです)。
たとえば、次の番号が割り当てられている場合
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 Server2008R2を使用しています。これは1回限りの演習であるため、たとえばExcelで簡単に実行できる場合は、SQL以外のソリューションでも適切な場合があります。