Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ritorna la riga di ogni ennesimo record

Qui è dove ROW_NUMBER può aiutare. Richiede una clausola order-by, ma va bene perché è presente un order-by (e richiesto per garantire un ordine particolare).

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