У меня есть запрос, по которому я хочу получить самые старые X-записи. В настоящее время мой запрос выглядит примерно так:
SELECT Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate DESC
Я знаю, что обычно я удаляю ключевое слово DESC, чтобы изменить порядок записей, однако в этом случае я все же хочу сначала получить записи, упорядоченные с самым новым элементом.
Поэтому я хочу знать, есть ли какие-либо средства для выполнения этого запроса, чтобы я отсортировал самые старые элементы X таким образом, чтобы самый новый элемент был первым. Я также должен добавить, что моя база данных существует на SQL Server 2005.


Почему бы просто не использовать подзапрос?
SELECT T1.*
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC
Вставьте запрос. Вы берете верхний x при сортировке в порядке возрастания (т.е. самый старый), а затем повторно сортируете их в порядке убывания ...
select *
from
(
SELECT top X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate
) a
order by createddate desc