Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gibt die Zeile jedes n-ten Datensatzes zurück

Hier ist ROW_NUMBER kann helfen. Es erfordert eine Order-By-Klausel, aber das ist in Ordnung, da eine Order-By vorhanden ist (und erforderlich ist, um eine bestimmte Bestellung zu garantieren).

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