Domanda

Ho una query in cui desidero recuperare i record X più vecchi.Al momento la mia domanda è simile alla seguente:

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

So che normalmente rimuoverei la parola chiave "DESC" per cambiare l'ordine dei record, tuttavia in questo caso desidero comunque che i record vengano ordinati prima con l'elemento più recente.

Quindi voglio sapere se esiste un modo per eseguire questa query in modo tale da ottenere gli elementi X più vecchi ordinati in modo tale che l'elemento più recente sia il primo.Dovrei anche aggiungere che il mio database esiste su SQL Server 2005.

È stato utile?

Soluzione

Perché non utilizzare semplicemente una sottoquery?

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

Altri suggerimenti

Incorpora la query.Prendi la prima x quando ordinata in ordine crescente (es.il più vecchio) e poi riordinarli in ordine decrescente...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top