SQL Select Bottom Records - PullRequest
       27

SQL Select Bottom Records

10 голосов
/ 14 сентября 2008

У меня есть запрос, по которому я хочу получить самые старые X-записи. В настоящее время мой запрос выглядит примерно так:

SELECT Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate DESC

Я знаю, что обычно я удаляю ключевое слово DESC, чтобы изменить порядок записей, однако в этом случае я все же хочу сначала упорядочить записи с самым новым элементом.

Итак, я хочу знать, есть ли какие-либо средства для выполнения этого запроса, чтобы я сортировал самые старые элементы X так, чтобы самый новый элемент был первым. Я также должен добавить, что моя база данных существует на SQL Server 2005.

Ответы [ 2 ]

22 голосов
/ 14 сентября 2008

Почему бы просто не использовать подзапрос?

SELECT T1.* 
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC
1 голос
/ 14 сентября 2008

Вставить запрос. Вы берете верхний x при сортировке в порядке возрастания (т.е. самый старый), а затем повторно сортируете их в порядке убывания ...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...