Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

LINQ to SQL Jede n-te Zeile aus der Tabelle

Manchmal ist TSQL der richtige Weg. Ich würde ExecuteQuery<T> verwenden hier:

    var data = db.ExecuteQuery<SomeObjectType>(@"
SELECT * FROM 
(SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS [__row]
FROM [YourTable]) x WHERE (x.__row % 25) = 1");

Sie könnten auch das n austauschen :

    var data = db.ExecuteQuery<SomeObjectType>(@"
DECLARE @n int = 2
SELECT * FROM 
(SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS [__row]
FROM [YourTable]) x WHERE (x.__row % @n) = 1", n);