SQL Selecionar Registros Inferiores
-
09-06-2019 - |
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.
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