Frage

Ich habe eine Abfrage, wo ich möchte die älteste X Datensätze abzurufen. Derzeit meine Abfrage ist in etwa wie folgt:

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

Ich weiß, dass normalerweise würde ich die ‚DESC‘ Schlüsselwort entfernen Sie die Reihenfolge der Datensätze jedoch in diesem Fall wechseln Ich möchte noch Datensätze mit den neuesten Artikel bestellt zuerst erhalten.

Also ich möchte wissen, ob es irgendwelche Mittel zur Durchführung dieser Abfrage ist so, dass ich die ältesten X Artikel so sortiert bekommen, dass das neueste Element zuerst ist. Ich möchte auch hinzufügen, dass meine Datenbank existiert auf SQL Server 2005.

War es hilfreich?

Lösung

Warum nicht einfach eine Unterabfrage verwenden?

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

Andere Tipps

einbetten die Abfrage. Sie nehmen die oben x wenn aufsteigend sortiert (das heißt die älteste) und dann neu sortiert werden diejenigen in absteigender Reihenfolge ...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top