In wezen is het enige wat u hoeft te doen om de x-de waarde te selecteren, alle rijen te behouden waarbij de modulus van het rijnummer gedeeld door x 0 is.
WHERE rn % @x_thValues = 0
Nu uw ROW_NUMBER
. kunnen gebruiken 's resultaat, moet u de hele verklaring in een subselectie plaatsen
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
Gecombineerd met een variabele tot welke x-de waarden je nodig hebt, zou je zoiets als dit testscript kunnen gebruiken
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