Чтобы выбрать каждую десятую строку из таблицы базы данных SQL Server, вы можете использовать различные методы. Вот несколько подходов:
-
Использование функции ROW_NUMBER():
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY [column_name]) AS RowNum FROM [table_name] ) AS t WHERE (RowNum % 10) = 0;
-
Использование предложения OFFSET-FETCH (доступно в SQL Server 2012 и более поздних версиях):
SELECT * FROM [table_name] ORDER BY [column_name] OFFSET 9 ROWS FETCH NEXT 1 ROWS ONLY;
-
Использование подзапроса со столбцом IDENTITY:
SELECT * FROM ( SELECT *, (ROW_NUMBER() OVER (ORDER BY [column_name]) - 1) AS RowNum FROM [table_name] ) AS t WHERE (RowNum % 10) = 0;
-
Использование временной таблицы или табличной переменной:
DECLARE @TempTable TABLE ( RowNum INT IDENTITY(1,1), [column1] datatype, [column2] datatype, ... ) INSERT INTO @TempTable SELECT [column1], [column2], ... FROM [table_name] ORDER BY [column_name] SELECT [column1], [column2], ... FROM @TempTable WHERE (RowNum % 10) = 0;