Выберите TOP N строк из таблицы
Я делаю пейджинг, и мне нужно сделать какой-то запрос и получить форму результирующего разреза.
например: мне нужно получить все "верхние" строки в диапазоне 20n < x < 40n и т.д.
SELECT * FROM Reflow
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC;
и теперь мне нужно сделать мой скользящий столбец с именем ID.
Любые предложения, как это сделать? Мне нужно запустить мой запрос на mysql, mssql и oracle.
Ответы
Ответ 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