Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête SQL pour récupérer des nombres dans des étapes données entre une plage

Vous pouvez utiliser une table de nombres (ou master..spt_values).

declare @MinNo int
declare @MaxNo int
declare @IncrementStep int

set @MinNo = 2500
set @MaxNo = 2700
set @IncrementStep = 10

select @MinNo + Number * @IncrementStep
from master..spt_values
where type = 'P' and
      number between 0 and (@MaxNo - @MinNo) / @IncrementStep

Ou un CTE récursif

;with C as
(
  select @MinNo as Num
  union all 
  select Num + @IncrementStep
  from C
  where Num < @MaxNo
)      
select Num
from C