Essentiellement, tout ce que vous avez à faire pour sélectionner la x-ième valeur est de conserver toutes les lignes où le module du numéro de ligne divisé par x est égal à 0.
WHERE rn % @x_thValues = 0
Maintenant, pour pouvoir utiliser votre ROW_NUMBER
, vous devrez encapsuler l'intégralité de l'instruction dans une sous-sélection
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
Combiné avec une variable sur les x-ièmes valeurs dont vous avez besoin, vous pouvez utiliser quelque chose comme ce script de test
DECLARE @x_thValues INTEGER = 2
;WITH DummyData AS (SELECT * FROM (VALUES (1), (2), (3), (4)) v (Value))
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0