V podstatě vše, co musíte udělat, abyste vybrali x-tou hodnotu, je zachovat všechny řádky, kde modul čísla řádku děleno x je 0.
WHERE rn % @x_thValues = 0
Nyní budete moci používat své ROW_NUMBER
's výsledkem, budete muset celý příkaz zabalit do podvýběru
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
V kombinaci s proměnnou na to, jaké x-té hodnoty potřebujete, můžete použít něco jako tento 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