SQL > SQL Befehle > Order By 

Bisher haben wir uns mit dem Abrufen von Daten aus einer Tabelle unter Verwendung der Befehle SELECT und WHERE beschäftigt. In vielen Fällen müssen die ausgegebenen Daten jedoch auf eine bestimmte Weise sortiert werden. Dies könnte beispielsweise in aufsteigender oder absteigender Reihenfolge oder auf der Grundlage eines Zahlenwerts oder Textwerts geschehen. In solchen Fällen können wir das Schlüsselwort ORDER BY einsetzen.

Die Syntax für eine ORDER BY-Anweisung sieht folgendermaßen aus:

SELECT "Spalten_Name"
FROM "Tabellen_Name"
[WHERE "Bedingung"]
ORDER BY "Spalten_Name" [ASC, DESC];

Das Symbol [ ] bedeutet, dass die WHERE-Anweisung optional ist. Ist jedoch eine WHERE-Klausel vorhanden, steht sie vor der ORDER BY-Klausel. ASC bedeutet, dass die Ergebnisse in aufsteigender Reihenfolge angezeigt werden, DESC, dass sie in absteigender Reihenfolge erscheinen. Findet sich keine diesbezügliche Angabe, wird die Voreinstellung ASC verwendet.

Es besteht die Möglichkeit, nach mehr als einer Spalte zu sortieren. In diesem Fall sieht die ORDER BY-Klausel wie folgt aus:

ORDER BY "Spalten_Name1" [ASC, DESC], "Spalten_Name2" [ASC, DESC]

Wenn wir beispielsweise für beide Spalten eine aufsteigende Sortierung wählen, erfolgt die Ausgabe in aufsteigender Reihenfolge gemäß Spalte 1. Liegt eine Verknüpfung für den Wert von Spalte 1 vor, erfolgt die Sortierung in aufsteigender Reihenfolge nach Spalte 2.

So könnten wir zum Beispiel den Inhalt der Tabelle Store_Information nach Euro-Beträgen in absteigender Reihenfolge sortieren:

Tabelle Store_Information

Store_Name Sales Txn_Date
Los Angeles 1500 05.Jan.1999
San Diego 250 07.Jan.1999
San Francisco 300 08.Jan.1999
Boston 700 08.Jan.1999

geben wir ein:

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY Sales DESC;

Ergebnis:

Store_Name Sales Txn_Date
Los Angeles 1500 05.Jan.1999
Boston 700 08.Jan.1999
San Francisco 300 08.Jan.1999
San Diego 250 07.Jan.1999

Zusätzlich zum Spaltennamen lässt sich auch mit der Spaltenposition (basierend auf der SQL-Abfrage) angeben, auf welche Spalte die ORDER BY-Klausel bezogen werden soll. Die erste Spalte ist 1, die zweite 2 usw. Im obigen Beispiel werden die gleichen Ergebnisse mit folgendem Befehl erreicht:

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY 2 DESC;


SQL Funktionen >>





Copyright © 2014   1keydata.com   Alle Rechte vorbehalten.