Вопрос

У меня есть запрос, в котором я хочу получить самые старые 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 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top