Intinya, yang perlu Anda lakukan untuk memilih nilai ke-x adalah mempertahankan semua baris di mana modulus bilangan baris dibagi x adalah 0.
WHERE rn % @x_thValues = 0
Sekarang untuk dapat menggunakan ROW_NUMBER
's, Anda harus membungkus seluruh pernyataan menjadi subpilihan
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
Dikombinasikan dengan variabel untuk nilai ke-x apa yang Anda butuhkan, Anda dapat menggunakan sesuatu seperti skrip tes ini
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