Just a brief demo of dynamic use of OFFSET through a loop

Oopps! Upgrade your browser pretty please.Oopps! Upgrade your browser pretty please.
DECLARE— Let us declare variables:
  @count int = 0,— Start
  @to int,— End
  @rows int = 10;— Rows per set
SELECT— Now we’re gonna
  @to = count(*) / @rows— determe the number of sets
FROM sys.columns— from this table
WHILE @count <= @to— This loops all through to the last set
BEGIN 
  SELECT— Returning these
    *— columns
  FROM sys.columns— from this table
  ORDER BY 1 ASC— in this order (here just based on first column).
  OFFSET (0 + (@count * @rows))— Based on loop we get the starting point of the offset.
  ROW FETCH NEXT (@rows) ROWS ONLY— The number of rows we’re fetching!
  SET @count += 1— Next step!
END