Это будет работать, если у вас есть только числа в качестве значений.
declare @T table(Col char(4))
insert into @T values
('0001'),
('0002'),
('0003'),
('0007'),
('0008'),
('0010'),
('0012'),
('0013'),
('0014'),
('0015')
;with C as
(
select Col,
Col - row_number() over(order by Col) as grp
from @T
)
select min(Col) as RangeStart,
max(Col) as RangeEnd,
count(*) as [Count]
from C
group by grp