23

descを使用した後、SQLServerで結果の順序を逆にしたい。例えば:

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

しかし、それはうまくいきませんでした。どうすれば修正できますか?

4

6 に答える 6

27

サブクエリをエイリアスする限り、これは機能するはずです。

SELECT q.* 
    FROM (SELECT TOP 3 * 
              FROM table 
              ORDER BY id DESC) q
    ORDER BY q.id ASC
于 2012-09-21T16:18:56.480 に答える
6

副選択エイリアスを忘れたと思います

SELECT * 
FROM (
    SELECT TOP 3 * 
    FROM table 
    ORDER BY id DESC
) s
ORDER BY id ASC
于 2012-09-21T16:20:40.663 に答える
2

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

于 2012-09-21T16:19:05.580 に答える
2
;WITH cte
AS
(
   SELECT *, ROW_NUMBER() OVER(ORDER BY id DESC) rank
   FROM table
)
SELECT * 
FROM cte
WHERE rank <= 3 
ORDER BY id ASC
于 2012-09-21T16:19:25.340 に答える
1
SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) AS r ORDER BY r.id ASC

私はそれを考え出した。一時テーブルを作成し、ASを使用して名前を付ける必要がありました。

于 2012-09-21T16:19:10.830 に答える
0
SELECT *
FROM (
    SELECT *
    FROM table
    ORDER BY ID DESC
) TMP
ORDER BY TMP.ID ASC
于 2013-07-08T04:24:17.713 に答える