SQL Seleziona i record inferiori
-
09-06-2019 - |
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.
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