Về bản chất, tất cả những gì bạn cần làm để chọn giá trị thứ x là giữ lại tất cả các hàng có mô-đun của rownumber chia cho x là 0.
WHERE rn % @x_thValues = 0
Bây giờ để có thể sử dụng ROW_NUMBER
của bạn kết quả là, bạn sẽ cần phải gói toàn bộ câu lệnh vào trong một lựa chọn con
SELECT *
FROM (
SELECT *
, rn = ROW_NUMBER() OVER (ORDER BY Value)
FROM DummyData
) d
WHERE rn % @x_thValues = 0
Được kết hợp với một biến cho những giá trị thứ x bạn cần, bạn có thể sử dụng một cái gì đó giống như testscript này
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