Ответ 1
Почему бы просто не использовать подзапрос?
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 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