Как реализовать LIMIT с Microsoft SQL Server? - PullRequest
112 голосов
/ 02 марта 2009

У меня есть этот запрос с mysql:

select * from table1 LIMIT 10,20

Как я могу сделать это с Microsoft SQL?

Ответы [ 15 ]

0 голосов
/ 11 октября 2018

Если ваш идентификатор является уникальным типом идентификатора или ваш идентификатор в таблице не отсортирован, вы должны сделать это ниже.

select * from
(select ROW_NUMBER() OVER (ORDER BY (select 0)) AS RowNumber,* from table1) a
where a.RowNumber between 2 and 5



Код будет

select * from limit 2,5
0 голосов
/ 12 апреля 2018

надо попробовать. В приведенном ниже запросе вы можете увидеть группирование по, упорядочение по, пропуск строк и ограничение строк.

select emp_no , sum(salary_amount) from emp_salary
Group by emp_no 
ORDER BY emp_no 
OFFSET 5 ROWS       -- Skip first 5 
FETCH NEXT 10 ROWS ONLY; -- limit to retrieve next 10 row after skiping rows
0 голосов
/ 23 января 2018

В SQL нет ключевого слова LIMIT. Если вам нужно только ограниченное количество строк, вы должны использовать ключевое слово TOP, которое похоже на LIMIT.

0 голосов
/ 02 марта 2009

Если я правильно помню (прошло много времени с тех пор, как я работал с SQL Server), вы можете использовать что-то вроде этого: (2005 и выше)

SELECT
    *
   ,ROW_NUMBER() OVER(ORDER BY SomeFields) AS [RowNum]
FROM SomeTable
WHERE RowNum BETWEEN 10 AND 20
0 голосов
/ 02 марта 2009
SELECT TOP 10 * FROM table;

То же, что и

SELECT * FROM table LIMIT 0,10;

Вот статья о реализации Limit в MsSQL Приятно читать, особенно комментарии.

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