Zasadniczo wszystko, co musisz zrobić, aby wybrać x-tą wartość, to zachować wszystkie wiersze, w których moduł numeru wiersza podzielony przez x wynosi 0.
WHERE rn % @x_thValues = 0
Teraz możesz używać swojego ROW_NUMBER
, musisz umieścić całą instrukcję w podselekcji
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
W połączeniu ze zmienną do jakich x-tych wartości potrzebujesz, możesz użyć czegoś takiego jak ten testscript
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