Вы должны использовать предложение order by
, чтобы указать, какие строки выбрать, а какие сместить:
WITH MyRowSet AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY p.cateID ORDER BY p.cateID DESC)
AS RowNum
FROM Product p )
SELECT *
FROM MyRowSet
WHERE RowNum <= 10
ORDER BY p.cateId, rownum
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;