Ich versuche, eine Abfrage zusammenzustellen, die einen bestimmten Datensatz (gefunden durch die primäre ID des Datensatzes) oben anzeigt und alle anderen Datensätze darunter, sortiert nach Datum, anzeigt (ich habe "date_added" als eines der Felder in der Tabelle, zusätzlich zur primären ID).
Ich könnte das mit einer UNION machen (die erste Auswahl würde den gewünschten Datensatz finden und die andere Auswahl würde alle anderen Datensätze anzeigen), aber ich frage mich, ob es vielleicht einen besseren Weg gibt?
Ich benutze übrigens Oracle.
Sie können dies tun, indem Sie nach zwei Feldern sortieren
Der erste wäre ein Ausdruck, der 0 zurückgibt, wenn die Zeile die gewünschte Zeile ist, oder 1, wenn dies nicht der Fall ist. Die Sortierung erfolgt aufsteigend, so dass Sie zuerst Ihren bevorzugten Datensatz erhalten.
Das zweite Sortierfeld wäre date_added, sodass die verbleibenden Datensätze in dieser Reihenfolge sortiert werden.
Angst, dass ich Oracle nicht in SQL Server weiß, wäre es etwa
%Vor%Der einfache Weg wäre, zu erkennen, dass Sie zwei getrennte Dinge anzeigen und daher in separate einfache Abfragen schreiben möchten. Eine Abfrage zum Abrufen des ersten Datensatzes und die zweite zum Abrufen der sortierten Liste. Es gibt keinen wirklichen Leistungsvorteil, mehr als das zu tun, weil nur ein einziger Datensatz existiert.