Im Wesentlichen müssen Sie zur Auswahl des x-ten Werts nur alle Zeilen beibehalten, bei denen der Modulus der Zeilennummer dividiert durch x 0 ist.
WHERE rn % @x_thValues = 0
Jetzt können Sie Ihre ROW_NUMBER
verwenden 's Ergebnis müssen Sie die gesamte Anweisung in eine Unterauswahl umschließen
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
Kombiniert mit einer Variablen für die x-ten Werte, die Sie benötigen, könnten Sie so etwas wie dieses Testskript verwenden
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