Подтвердить что ты не робот

Обратный порядок сервера sql после использования desc

Я хочу изменить порядок в sql-сервере результатов после использования desc. Например:

SELECT TOP 3 * FROM table ORDER BY id DESC

возвращает результаты:

505
504
503

Но тогда я хочу перевернуть результаты, чтобы они выглядели так:

503
504
505

Я пробовал

SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) ORDER BY id ASC

но это не сработало, никаких предложений?

4b9b3361

Ответ 1

Это должно работать до тех пор, пока вы выполняете псевдоним подзапроса.

SELECT q.* 
    FROM (SELECT TOP 3 * 
              FROM table 
              ORDER BY id DESC) q
    ORDER BY q.id ASC

Ответ 2

Я думаю, вы забыли псевдоним subselect

SELECT * 
FROM (
    SELECT TOP 3 * 
    FROM table 
    ORDER BY id DESC
) s
ORDER BY id ASC

Ответ 3

SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) As AliasName ORDER BY id ASC

Ответ 4

;WITH cte
AS
(
   SELECT *, ROW_NUMBER() OVER(ORDER BY id DESC) rank
   FROM table
)
SELECT * 
FROM cte
WHERE rank <= 3 
ORDER BY id ASC

Ответ 5

SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) AS r ORDER BY r.id ASC

вычислил, что нужно сделать временную таблицу, используя имя AS

Ответ 6

SELECT *
FROM (
    SELECT *
    FROM table
    ORDER BY ID DESC
) TMP
ORDER BY TMP.ID ASC