Подтвердить что ты не робот

Выберите TOP N строк из таблицы

Я делаю пейджинг, и мне нужно сделать какой-то запрос и получить форму результирующего разреза. например: мне нужно получить все "верхние" строки в диапазоне 20n < x < 40n и т.д.

SELECT * FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC;

и теперь мне нужно сделать мой скользящий столбец с именем ID.

Любые предложения, как это сделать? Мне нужно запустить мой запрос на mysql, mssql и oracle.

4b9b3361

Ответ 1

Предполагая, что размер вашей страницы составляет 20 записей, и вы хотите получить номер страницы 2, вот как вы это сделаете:

SQL Server, Oracle:

SELECT *   -- <-- pick any columns here from your table, if you wanna exclude the RowNumber
FROM (SELECT ROW_NUMBER OVER(ORDER BY ID DESC) RowNumber, * 
      FROM Reflow  
      WHERE ReflowProcessID = somenumber) t
WHERE RowNumber >= 20 AND RowNumber <= 40    

MySQL:

SELECT * 
FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC
LIMIT 20 OFFSET 20

Ответ 2

В MySql вы можете получить 10 строк, начиная с строки 20, используя:

SELECT * FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC
LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10

Ответ 3

select * from table_name LIMIT 100

помните, что это работает только с MYSQL