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 >>

Diese Seite wurde zuletzt am 26.06.2022 aktualisiert




Copyright © 2024   1keydata.com   Alle Rechte vorbehalten