Pergunta

Tenho uma consulta na qual desejo recuperar os registros X mais antigos.No momento, minha consulta é algo como o seguinte:

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

Eu sei que normalmente eu removeria a palavra-chave 'DESC' para mudar a ordem dos registros, mas neste caso ainda quero que os registros sejam ordenados primeiro com o item mais novo.

Então, eu quero saber se existe algum meio de realizar esta consulta de forma que eu classifique os itens X mais antigos de forma que o item mais novo seja o primeiro.Devo acrescentar também que meu banco de dados existe no SQL Server 2005.

Foi útil?

Solução

Por que não usar apenas uma subconsulta?

SELECT T1.* 
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC

Outras dicas

Incorpore a consulta.Você pega o x superior quando classificado em ordem crescente (ou seja,o mais antigo) e, em seguida, reorganize-os em ordem decrescente...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top