I. J. Kennedy I. J. Kennedy - 1 month ago 12
SQL Question

Select Top N Records Ordered by X, But Have Results in Reverse Order

I'm trying to get the top N records (when ordered by some column X), but have the result set in reverse order. The following statement is incorrect, but probably demonstrates what I'm after:

SELECT * FROM (SELECT TOP 10 * FROM FooTable ORDER BY X DESC) ORDER BY X ASC


For example, column X could be an ID or a timestamp; I want the latest 10 records but want them returned in forward chronological order.

Answer
SELECT * FROM 
   (SELECT TOP 10 * FROM FooTable ORDER BY X DESC) as myAlias 
ORDER BY X ASC 

i.e. you might need an alias on your subquery, but other than that it should work.

Comments