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

时间:2021-06-20 22:18:08

I have a table.It has more than 100 row and increasing. I want to get rows like this :

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

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

note : at MSSQL 2008 R2

注意:在MSSQL 2008 R2上

2 个解决方案

#1


5  

You can use ROW_NUMBER and %, f.e. with a common-table-expression:

您可以使用ROW_NUMBER和%,f.e。使用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

#2


0  

--It Helps to you

- 它会帮助你

CREATE TABLE ##Numeric (Id INT)

DECLARE @Value INT = 1

WHILE (@Value <= 100)
BEGIN
    INSERT INTO ##Numeric
    SELECT @Value

    SET @Value = @Value + 1
END

SELECT *
FROM ##Numeric
WHERE ID % 7 = 1

#1


5  

You can use ROW_NUMBER and %, f.e. with a common-table-expression:

您可以使用ROW_NUMBER和%,f.e。使用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

#2


0  

--It Helps to you

- 它会帮助你

CREATE TABLE ##Numeric (Id INT)

DECLARE @Value INT = 1

WHILE (@Value <= 100)
BEGIN
    INSERT INTO ##Numeric
    SELECT @Value

    SET @Value = @Value + 1
END

SELECT *
FROM ##Numeric
WHERE ID % 7 = 1