簡化我的問題向下 - 我已經6位,其分配編號,以從1開始和結束到999999大多數數字客戶場順序分配,但數字可以由用戶手動分配,並且該特徵在整個範圍內以不可預測的模式使用。定義範圍,以覆蓋在多個序列間隙(T-SQL)
我們現在需要確定尚未分配(容易)號 - 然後轉換爲數字範圍內的這種(看似複雜)。
例如獲得以下幾號已分配
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中完成。
連續最大stp_values.number是'2047'而它應該達到'999999'。 – GSerg
@gserg您可以通過自我加入spt_values輕鬆創建更大數字的表格。 – podiluska
我會簡單地在'spt_values'的無條件笛卡爾連接上使用'top(999999)'。 – GSerg