W tym miejscu ROW_NUMBER
może pomóc. Wymaga klauzuli kolejności według, ale jest to w porządku, ponieważ istnieje kolejność według kolejności (i wymagana do zagwarantowania konkretnego zamówienia).
SELECT t.id, t.key
FROM
(
SELECT id, key, ROW_NUMBER() OVER (ORDER BY key) AS rownum
FROM datatable
) AS t
WHERE t.rownum % 30 = 0 -- or % 40 etc
ORDER BY t.key