本质上,选择第x个值所需要做的就是保留所有行数除以x的模数为0的行。
WHERe rn % @x_thValues = 0
现在,要使用
ROW_NUMBER的结果,您需要将整个语句包装到一个subselect中
SELECT *FROM ( SELECt * , rn = ROW_NUMBER() OVER (ORDER BY Value) FROM DummyData ) dWHERe rn % @x_thValues = 0
结合变量到需要的第x个值,您可以使用类似于以下的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 ) dWHERe rn % @x_thValues = 0



