如何使用T-SQL to select N行每N行?
How to use T-SQL to select N rows every N rows?
我有几百行编号为SELECT ROW_NUMBER() OVER (ORDER BY LastName)
的数据。
我需要在 selection 中每 3 行跳过其中 3 行。所以我需要 select 第 1、2、3 行...然后跳过第 4、5、6 行...然后包括第 7、8、9 行...然后跳过第 10、11、12 行... 。 等等等等。我需要能够动态地执行此操作,以便它可以随任何大小缩放 selection.
(我还需要得到上述结果的逆向结果,但假设我可以从提供的答案中推断出来。)
您可以使用子查询:
select t.*
from (select t.*, row_number() over (order by lastname) as seqnum
from t
) t
where seqnum % 6 in (1, 2, 3);
我有几百行编号为SELECT ROW_NUMBER() OVER (ORDER BY LastName)
的数据。
我需要在 selection 中每 3 行跳过其中 3 行。所以我需要 select 第 1、2、3 行...然后跳过第 4、5、6 行...然后包括第 7、8、9 行...然后跳过第 10、11、12 行... 。 等等等等。我需要能够动态地执行此操作,以便它可以随任何大小缩放 selection.
(我还需要得到上述结果的逆向结果,但假设我可以从提供的答案中推断出来。)
您可以使用子查询:
select t.*
from (select t.*, row_number() over (order by lastname) as seqnum
from t
) t
where seqnum % 6 in (1, 2, 3);