Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Retourne la ligne de chaque nième enregistrement

C'est là que ROW_NUMBER peut aider. Il nécessite une clause de commande par mais c'est correct car une commande par est présente (et nécessaire pour garantir une commande particulière).

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