выберите TOP N строк из таблицы - PullRequest
28 голосов
/ 05 февраля 2012

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

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

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

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

Ответы [ 3 ]

48 голосов
/ 05 февраля 2012

Предполагая, что размер вашей страницы составляет 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
21 голосов
/ 05 февраля 2012

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

SELECT * FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC
LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10
0 голосов
/ 24 января 2019
select * from table_name LIMIT 100

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...