Pregunta

Tengo una consulta donde me desea recuperar los más antiguos X registros.En la actualidad, mi consulta es algo como lo siguiente:

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

Sé que normalmente me iba a quitar la 'DESC' palabra clave ' para cambiar el orden de los registros, sin embargo, en este ejemplo yo todavía quieren obtener los registros ordenados con el nuevo elemento de primera.

Así que quiero saber si hay cualquier medio de la realización de esta consulta que tengo, el más antiguo de los X elementos ordenados tales que el objeto más nuevo es el primero.También debo agregar que mi base de datos en SQL Server 2005.

¿Fue útil?

Solución

¿Por qué no usar una subconsulta?

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

Otros consejos

Incrustar la consulta.Se coge la parte de x cuando se ordenan en orden ascendente (es decir,la más antigua) y, a continuación, volver a clasificar aquellos en orden descendente ...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top