Я пытаюсь выбрать строки 3 - 5 из:
SELECT *
FROM Finance_User
ORDER BY email DESC
У меня изначально было просто:
SELECT
ROW_NUMBER() OVER (ORDER BY email DESC) AS RowNum, *
FROM
Finance_User
WHERE
RowNum BETWEEN 3 AND 5
Но это не сработало, поскольку RowNum
был недопустимым столбцом,
Вместо этого я сделал следующее:
WITH OrderedUsers AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY email DESC) AS RowNum, *
FROM
Finance_User
)
SELECT *
FROM OrderedUsers
WHERE RowNum BETWEEN 3 AND 5
Это прекрасно работает.Тем не менее, я обеспокоен тем, что могут быть проблемы с производительностью, так как, кажется, выбирает из таблицы дважды?