Если вы знаете, что все числа присутствуют в исходной таблице, вы можете использовать рекурсивный CTE для генерации диапазонов чисел:
; with numbers as
(
select 0 as a
, 99 as b
union all
select a+100
, b+100
from numbers
where a < 900
)
select *
from numbers
Если исходная таблица заполнена редко, вы можете ограничить ее числамикоторые на самом деле присутствуют, как:
... insert CTE from above here ...
select min(ot.NumberColumn)
, max(ot.NumberColumn)
from numbers
left join
OtherTable ot
on ot.NumberColumn between numbers.a and numbers.b
group by
numbers.a