Zurück zur Artikelliste Artikel
6 Leseminuten

SQL ORDER BY-Klausel mit 7 Beispielen

Lernen Sie die SQL ORDER BY-Klausel kennen! Unsere praktischen und einfachen Beispiele werden Ihnen helfen, die Syntax, die üblichen Verwendungen und die besten Praktiken zu verstehen.

Mit SQL oder Structured Query Language können Sie mit einer Datenbank "sprechen". Sie ermöglicht es Ihnen, Daten in einer relationalen Datenbank zu erstellen, abzurufen und zu bearbeiten. Diese Sprache ist inzwischen so allgegenwärtig, dass kaum ein datenbezogener Bereich von ihr unberührt bleibt.

Wenn Sie sich für die SQL-Klausel ORDER BY interessieren, nehme ich an, dass Sie entweder bereits mit dem Erlernen von SQL begonnen haben oder dies bald tun werden. Diese Klausel wird verwendet, um Ergebnisse in einer bestimmten Reihenfolge zu sortieren. In diesem Artikel werden wir einige praktische Beispiele behandeln, um ihre Verwendung zu demonstrieren. Wenn Sie mit den Grundlagen von SQL-Abfragen noch nicht vertraut sind, empfehle ich Ihnen unseren SQL für Anfänger Kurs.

Lassen Sie uns direkt in die SQL ORDER BY Klausel eintauchen.

Was ist die SQL ORDER BY-Klausel?

Wie bereits erwähnt, wird die SQL ORDER BY-Klausel verwendet, um Abfrageergebnisse in einer bestimmten Reihenfolge anzuordnen. Nehmen wir an, Sie sind ein Hochschulprofessor und möchten eine Liste der Studenten, die in Ihrer Klasse eingeschrieben sind, in alphabetischer Reihenfolge ausgeben. Wenn Sie diese Informationen in einer Datenbank gespeichert haben, können Sie mit einer einfachen Abfrage die Ergebnisse ausgeben.

Meiner Erfahrung nach ist ORDER BY eines der nützlichsten SQL-Konstrukte; in fast allen Berichten und Analysen wird es verwendet.

Ich möchte Ihnen anhand eines Beispiels zeigen, wie Sie eine einfache Abfrage mit ORDER BY schreiben können.

Beispiel 1: ORDER BY mit einer numerischen Spalte

Stellen Sie sich vor, Sie arbeiten als Verkaufsleiter in einem Unternehmen. Die Datenbank Ihres Unternehmens speichert die Verkaufsdaten für jeden Verkäufer in der folgenden Tabelle, die sales_performance:

sales_person_idnameterritorytotal_sales_valuejoining_date
2333GregorioBavaria1922021-Sep-2021
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020

Angenommen, Sie möchten diese Liste von Verkäufern abrufen. Sie möchten sie nach ihrer ID-Nummer in aufsteigender Reihenfolge auflisten (d. h. von der kleinsten bis zur größten, von A-Z usw.). Ihre Abfrage sieht dann etwa so aus:

SELECT * 
FROM sales_performance
ORDER BY sales_person_id;

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021
4134PierreParis2121401-Aug-2020
4323AaronLondon32000010-Jan-2018

Bei der Abfrage werden alle Datensätze und Spalten aus der Tabelle sales_performance Tabelle zurückgibt und dann die Ergebnisse auf der Grundlage der numerischen Reihenfolge der Spalte sales_person_id anordnet.

Beachten Sie, dass ORDER BY standardmäßig in aufsteigender Reihenfolge sortiert. Sie können zwar das Schlüsselwort ASC verwenden, um anzugeben, dass Sie die Ergebnisse in aufsteigender Reihenfolge haben möchten, aber Sie müssen es nicht unbedingt angeben. In einem Feld mit Zahlen steht bei aufsteigender Reihenfolge die kleinste Zahl an erster Stelle, gefolgt von der nächstkleineren und so weiter. Die größte Zahl steht an letzter Stelle.

Beispiel 2: ORDER BY mit einer Textspalte

Sie können die gleiche Klausel auch verwenden, um Spaltenwerte in alphabetischer Reihenfolge zu sortieren. Angenommen, Sie möchten eine Liste von Vertriebsmitarbeitern, geordnet nach den Vornamen der Vertriebsmitarbeiter. Hier ist die Abfrage:

SELECT * 
FROM sales_performance
ORDER BY name;

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
2333GregorioBavaria1922021-Sep-2021
4134PierreParis2121401-Aug-2020
1113SebastianLondon3243331-Oct-2020

Die Datensätze sind nun in alphabetischer Reihenfolge nach name sortiert. In aufsteigender Reihenfolge bedeutet dies, dass die Namen alphabetisch von A bis Z aufgelistet sind.

Beispiel 3: ORDER BY mit einer Datumsspalte

Sie können die Ergebnisse auch nach einer Datumsspalte wie joining_date sortieren. Im Falle der Datumsspalte gibt die Standardabfrage die Datensätze vom ältesten bis zum neuesten Datum zurück:

SELECT * 
FROM sales_performance
ORDER BY joining_date;

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
4134PierreParis2121401-Aug-2020
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021

Hier sind die Ergebnisse nach joining_date sortiert, vom ältesten bis zum neuesten Datum.

Beispiel 4: Ordnung in absteigender Reihenfolge

Bis jetzt wurden alle Datensätze in aufsteigender Reihenfolge sortiert. Sie können die Datensätze jedoch auch in absteigender Reihenfolge anordnen - schreiben Sie einfach das Schlüsselwort DESC hinter den Spaltennamen.

Angenommen, Sie möchten diese Liste nach dem Gesamtumsatz der einzelnen Verkäufer sortieren. Sie möchten die größte Zahl (d. h. den höchsten Umsatz) zuerst sehen, also müssen Sie in absteigender Reihenfolge sortieren. Versuchen wir die folgende Abfrage:

SELECT * 
FROM sales_performance
ORDER BY total_sales_value DESC;

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020
2333GregorioBavaria1922021-Sep-2021

Die Ergebnisse werden in absteigender Reihenfolge (10-1) nach dem Gesamtumsatzwert sortiert. Sie können dies auch mit Text- oder Datumswerten tun; in diesem Fall werden die Ergebnisse von Z nach A (Text) oder vom neuesten zum ältesten (Datum) sortiert.

Die Schlüsselwörter DESC oder ASC können je nach Bedarf verwendet werden. Wenn Sie das Schlüsselwort weglassen, werden die Ergebnisse in aufsteigender Reihenfolge angezeigt.

Beispiel 5: ORDER BY unter Verwendung einer Spalternummer

Sie können auch auf eine Spalte verweisen, indem Sie einen numerischen Verweis verwenden, der auf der Reihenfolge der Spalten in der Tabelle basiert. Mit anderen Worten, Sie verwenden eine Nummer anstelle des Spaltennamens. Schauen Sie sich das folgende Beispiel an, um mehr Klarheit zu erhalten:

SELECT sales_person_id, name 
FROM sales_performance
ORDER BY 2;

Ausgabe:

sales_person_idname
4323Aaron
2333Gregorio
4134Pierre
1113Sebastian

Der Spaltenname ist die zweite Spalte in unserer Tabelle. Wir möchten die von der Abfrage zurückgegebenen Werte nach dem Namen des Vertreters ordnen, aber anstatt Name nach ORDER BY zu schreiben, haben wir 2 geschrieben.

Hinweis: Dieser Ansatz wird nur für interaktive Abfragen empfohlen. Es wird nicht empfohlen, Skripte zu schreiben, da Abfragen mit Zahlen in ORDER BY schwer zu handhaben sind.

Beispiel 6: Sortieren mehrerer Spalten

Beim Schreiben echter Abfragen sind Ihre Anforderungen selten so einfach wie in den Beispielen, die wir verwendet haben; möglicherweise müssen Sie Ihre Werte nach mehreren Spalten sortieren.

Mit der ORDER BY Klausel können Sie das tun, indem Sie eine Liste von Spalten angeben; trennen Sie die Spaltennamen einfach mit Kommas. Sie können die Schlüsselwörter ASC oder DESC (falls gewünscht) mit jeder Spalte verwenden, um die Spalte in aufsteigender oder absteigender Reihenfolge zu sortieren.

Nehmen wir an, Sie müssen die Tabellendatensätze in absteigender Reihenfolge nach territory und dann nach dem Namen des Verkäufers anzeigen. Ihre Abfrage wird etwa so aussehen.

SELECT * 
FROM sales_performance
ORDER BY territory DESC, name ASC;

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
4134PierreParis2121401-Aug-2020
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021

Sie werden in der Ausgabe feststellen, dass die Spalte territory in umgekehrter alphabetischer (d. h. absteigender) Reihenfolge angeordnet ist. Für das Gebiet London werden die Datensätze in alphabetischer Reihenfolge nach Namen angezeigt.

Beispiel 7: Verwendung von ORDER BY mit Ausdrücken

Sie können auch nach mehr als nur Spaltennamen sortieren; SQL erlaubt die Verwendung von Ausdrücken beim Sortieren von Werten. Nehmen wir zum Beispiel an, Sie möchten durch die Verkettung von territory und name in aufsteigender Reihenfolge sortieren. Hier ist die Abfrage:

SELECT *
FROM sales_performance
ORDER BY CONCAT(territory, name);

Ausgabe:

sales_person_idnameterritorytotal_sales_valuejoining_date
2333GregorioBavaria1922021-Sep-2021
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020

Hier werden die Datensätze durch eine Verkettung von territory und name geordnet. Somit stehen Bavaria und Gregorio in alphabetischer Reihenfolge an erster Stelle und Paris Pierre an letzter Stelle.

Sie können CASE in ORDER BY verwenden, um eine wirklich präzise Reihenfolge zu erhalten.

Möchten Sie die Verwendung von ORDER BY in SQL üben?

Ich hoffe, diese Beispiele haben die Verwendung der ORDER BY Klausel deutlich gemacht. Das Sortieren von Daten ist eine der wichtigsten Anforderungen in den meisten Ansichten und Berichten, weshalb es wichtig ist, die Verwendung von ORDER BY zu beherrschen. Und der Schlüssel zum Erfolg beim Schreiben von Abfragen ist Übung!

Je mehr Abfragen Sie für verschiedene Anwendungsfälle schreiben, desto intuitiver wird das Schreiben von Abfragen. Wenn Sie auf der Suche nach ein paar tollen SQL-Übungen sind, schauen Sie sich unsere interaktiven SQL-Übungssatz. Es bietet 88 interaktive Übungen, die von einfach bis fortgeschritten reichen.

Und wenn Sie eine umfassende Lernerfahrung suchen, ist unser SQL von A bis Z Track genau das Richtige für Sie. Er bietet 7 interaktive Kurse und wird Sie auf den Weg zu professionellen SQL-Kenntnissen bringen. Oder lesen Sie diesen Artikel über die verschiedenen Möglichkeiten, SQL zu lernen.

Alles Gute und viel Spaß beim Lernen!