如何只选择表格中的每第n行?

ser*_*dar 2 sql database sql-server sql-server-2008

我有一张桌子.它有超过100排并增加.我想得到这样的行:

1  - row (not needed 2,3,4,5,6,7. rows)
8  - row  
15 - row
22 - row
29 - row
Run Code Online (Sandbox Code Playgroud)

注意:在MSSQL 2008 R2上

Tim*_*ter 5

您可以使用ROW_NUMBER%,以及common-table-expression:

WITH CTE AS
(
  SELECT t.*, RN= ROW_NUMBER() OVER (Order By OrderColumn ASC)
  FROM dbo.TableName t
)
SELECT * FROM CTE WHERE RN % 7 = 1
Run Code Online (Sandbox Code Playgroud)