使用desc后sql server逆序

kql*_*ert 18 sql sql-server

我想在使用desc后反转结果的sql server中的顺序.例如:

SELECT TOP 3 * FROM table ORDER BY id DESC
Run Code Online (Sandbox Code Playgroud)

返回结果:

505
504
503
Run Code Online (Sandbox Code Playgroud)

但后来我想把结果翻转成这样:

503
504
505
Run Code Online (Sandbox Code Playgroud)

我试过了

SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)

但那没用,有什么建议吗?

Joe*_*lli 23

只要您对子查询进行别名,这应该可以工作.

SELECT q.* 
    FROM (SELECT TOP 3 * 
              FROM table 
              ORDER BY id DESC) q
    ORDER BY q.id ASC
Run Code Online (Sandbox Code Playgroud)


Clo*_*eto 5

我认为您忘记了subselect别名

SELECT * 
FROM (
    SELECT TOP 3 * 
    FROM table 
    ORDER BY id DESC
) s
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)