Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server-
Sie können die Zeilen in einem Abfrageergebnis sortieren. Das heißt, Sie können eine bestimmte Spalte oder einen Bestimmten Satz von Spalten benennen, deren Werte die Reihenfolge der Zeilen im Resultset bestimmen.
Anmerkung
Die Sortierreihenfolge wird teilweise durch die Kollationsfolge der Spalte bestimmt. Sie können die Sortierreihenfolge im Dialogfeld "Sortierung" ändern.
Es gibt verschiedene Möglichkeiten, Abfrageergebnisse zu sortieren:
Sie können Zeilen in aufsteigender oder absteigender Reihenfolge anordnen
Sql verwendet standardmäßig die Reihenfolge nach Spalten, um Zeilen in aufsteigender Reihenfolge anzuordnen. Wenn Sie beispielsweise die Buchtitel nach aufsteigender Preis anordnen möchten, sortieren Sie einfach die Zeilen nach der Preisspalte. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT * FROM titles ORDER BY price;Wenn Sie jedoch die Titel mit den teureren Büchern zuerst anordnen möchten, können Sie explizit eine höchste zuerst Sortierung angeben. Das heißt, Sie geben an, dass die Ergebniszeilen nach absteigenden Werten der Preisspalte angeordnet werden sollen. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT * FROM titles ORDER BY price DESC;Sie können nach mehreren Spalten sortieren.
Sie können z. B. ein Resultset mit einer Zeile für jeden Autor erstellen, zuerst nach Bundesland und dann nach Ort sortieren. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT * FROM authors ORDER BY state, city;Sie können nach Spalten sortieren, die nicht im Resultset angezeigt werden
Sie können beispielsweise zuerst ein Resultset mit den teuersten Titeln erstellen, auch wenn die Preise nicht angezeigt werden. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT title_id, title FROM titles ORDER BY price DESC;Sie können nach abgeleiteten Spalten sortieren.
Sie können z. B. ein Resultset erstellen, in dem jede Zeile einen Buchtitel enthält – mit den Büchern, die die höchsten Lizenzgebühren pro Kopie zahlen, die zuerst angezeigt werden. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT title, price * royalty / 100 AS royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC;(Die Formel für die Berechnung der Lizenzgebühren, die jedes Buch pro Kopie verdient, wird hervorgehoben.)
Zum Berechnen einer abgeleiteten Spalte können Sie die SQL-Syntax wie im vorherigen Beispiel verwenden oder eine benutzerdefinierte Funktion verwenden, die einen skalaren Wert zurückgibt. Weitere Informationen zu benutzerdefinierten Funktionen finden Sie in der SQL Server-Dokumentation.
Sie können gruppierte Zeilen sortieren
Zum Beispiel; Sie können ein Resultset erstellen, in dem jede Zeile eine Stadt beschreibt, sowie die Anzahl der Autoren in dieser Stadt – mit den Städten, die viele Autoren enthalten, zuerst erscheinen. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state;Die Abfrage wird als sekundäre Sortierspalte verwendet
state. Wenn also zwei Staaten dieselbe Anzahl von Autoren haben, werden diese Zustände in alphabetischer Reihenfolge angezeigt.Sie können nach internationalen Daten sortieren.
Das heißt; Sie können eine Spalte mithilfe von Sortierkonventionen sortieren, die sich von den Standardkonventionen für diese Spalte unterscheiden. Sie können beispielsweise eine Abfrage schreiben, die alle Buchtitel von Jaime Patiño abruft. Um die Titel in alphabetischer Reihenfolge anzuzeigen, verwenden Sie eine spanische Sortierreihenfolge für die Titelspalte. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS;