У меня есть база данных (SQL Server
) и приложение, которое извлекает данные и преобразует их в JSON
.
Я написал запрос T-SQL
, чтобы упорядочить данные по столбцу userid
(DESC
) и взять только первые 10
строки, но это вызывает проблему с возвратом неправильных результатов.
ДляНапример, если у меня есть следующая таблица:
UserID
---
User1
User2
User3
...
User10
..
User25
Я хочу, чтобы UserID
было DESC
и получить первые десять результатов (затем вторые десять результатов и т. д.).Проще говоря, я ищу MySQL LIMIT
замену в SQL Server
.
Мой запрос
SELECT * FROM
(SELECT
system_users_ranks.RankName,
system_users.userid,
system_users.UserName,
system_users.Email,
system_users.LastIP,
system_users.LastLoginDate,
row_number() OVER (ORDER BY system_users.userid) as myrownum
FROM
system_users
INNER JOIN
system_users_ranks
ON system_users.UserRank = system_users_ranks.rankid
) as dertbl
WHERE myrownum BETWEEN @startval AND @endval
ORDER BY userid DESC
Я не могу переместить ORDER BY
во внутреннюю SELECT
.