ПРЕДЕЛ MySQL в SQL Server - PullRequest
       14

ПРЕДЕЛ MySQL в SQL Server

1 голос
/ 02 ноября 2011

Я пытаюсь понять решение этого вопроса.

Код MySQL, который я хочу использовать в SQL Server, таков:

SELECT * FROM users WHERE city_id=1 ORDER BY datejoined ASC LIMIT 20,10;

IsЕсть ли более простое решение, которое я мог бы использовать?

(очевидно, '20' в приведенном выше коде является параметром, но я выполняю этот запрос из кода приложения, поэтому я могу просто построить строку как ...LIMIT " + ((page * 10) - 10) + ",10;";. Т.е.. нет необходимости в синтаксисе передачи параметров tsql.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Ваш запрос будет выглядеть так

select * from ( select *, ROW_NUMBER() over (order by datejoined) _ROW_NUMBER from users where city_id = 1 ) a where _ROW_NUMBER between 20 and 30
0 голосов
/ 02 ноября 2011
I am trying to understand the solution to this question

ROWNUMBER () - это функция, она просто назначит номер строки каждой выбранной строке.

рассмотрите это следующим образом, в первую очередь ваш результат будет отфильтрован по критерию условия пункта, затем к вашему результату будет добавлен один дополнительный столбец, и этот дополнительный столбец будет иметь только номера 1,2,3 .... и так далее.

LIMIT 

clause tells MYSQL to limit the number of rows returned. Same u can achieved using RowNumber() function, as now row number have been assigned to every row, u can tell SqlServer in where clause that only fethched rows with RowNumber less than 10. (u will have to use nested query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...