Wir wissen, dass die SQL SELECT-Anweisung die Zeilen in keiner bestimmten Reihenfolge zurückgibt. Mit Hilfe der ORDER BY-Klausel können wir die Zeilen in einer gewünschten Reihenfolge anordnen. Die ORDER BY-Klausel wird verwendet, um die zurückgegebenen Datensätze in einer bestimmten Reihenfolge zu sortieren. Mit Hilfe der ORDER BY-Klausel können wir das Ergebnis in aufsteigender oder absteigender Reihenfolge sortieren. Diese Klausel kann auch mit mehreren Spalten verwendet werden.
ORDER BY Syntax
SELECT column_name1, column_name2, column_name3.... FROM table_nameWHERE Condition ORDER BY column_name1, column_name2, .... (ASC OR DESC);
Hier wird ASC für die Sortierung in aufsteigender Reihenfolge und DESC für die absteigende Reihenfolge verwendet.
SQL ORDER BY Klausel Beispiel
Angenommen, wir haben eine Tabelle „STUDENT“ mit den folgenden Datensätzen.
+---------+----------+-----+-----------+----------+| ROLL_NO | NAME | AGE | BRANCH | CITY |+---------+----------+-----+-----------+----------+| 10001 | Kate | 22 | CSE | Mumbai || 10002 | Richard | 21 | ECE | Delhi || 10003 | Rick | 33 | ME | Chennai || 10004 | Peter | 26 | CSE | Delhi || 10005 | Steve | 22 | CSE | Noida || 10006 | Mark | 22 | ECE | Jaipur || 10007 | Brad | 23 | ME | Rampur |+---------+----------+-----+-----------+----------+
Die folgende SQL-Anweisung holt alle Datensätze aus der Tabelle „STUDENT“ und die zurückgegebenen Zeilen sind in aufsteigender Reihenfolge des Alters der Schüler.
SELECT * FROM STUDENTORDER BY AGE;
Hinweis: Die Standard-Sortierreihenfolge ist aufsteigend, so dass die Zeilen nach der Spalte „AGE“ sortiert werden, obwohl wir das Schlüsselwort ASC in der order by-Klausel nicht verwendet haben. Es ist also sicher, dass die folgende Abfrage der obigen Abfrage entspricht und das gleiche Ergebnis liefert.
SELECT * FROM STUDENTORDER BY AGE ASC;
Ergebnis:
+---------+----------+-----+-----------+----------+| ROLL_NO | NAME | AGE | BRANCH | CITY |+---------+----------+-----+-----------+----------+| 10002 | Richard | 21 | ECE | Delhi || 10001 | Kate | 22 | CSE | Mumbai || 10005 | Steve | 22 | CSE | Noida || 10006 | Mark | 22 | ECE | Jaipur || 10007 | Brad | 23 | ME | Rampur || 10004 | Peter | 26 | CSE | Delhi || 10003 | Rick | 33 | ME | Chennai |+---------+----------+-----+-----------+----------+
SQL ORDER BY DESC Beispiel
Table: STUDENT
+---------+----------+-----+-----------+----------+| ROLL_NO | NAME | AGE | BRANCH | CITY |+---------+----------+-----+-----------+----------+| 10001 | Kate | 22 | CSE | Mumbai || 10002 | Richard | 21 | ECE | Delhi || 10003 | Rick | 33 | ME | Chennai || 10004 | Peter | 26 | CSE | Delhi || 10005 | Steve | 22 | CSE | Noida || 10006 | Mark | 22 | ECE | Jaipur || 10007 | Brad | 23 | ME | Rampur |+---------+----------+-----+-----------+----------+
Die folgende SQL-Anweisung holt die Namen der Studenten aus der Tabelle „STUDENT“ und sortiert die zurückgegebenen Namen in absteigender Reihenfolge (wir haben DESC für absteigende Reihenfolge in der ORDER BY-Klausel verwendet).
SELECT NAME FROM STUDENTORDER BY NAME DESC;
Ergebnis:
+----------+| NAME | +----------+| Steve | | Rick | | Richard | | Peter | | Mark | | Kate | | Brad | +----------+
Wie Sie sehen können, haben wir eine Liste von Schülernamen erhalten, die in absteigender Reihenfolge sortiert sind.
SQL ORDER BY Multiple Columns
In den obigen Beispielen haben wir die Sortierung basierend auf einer einzigen Spalte durchgeführt. Wir können jedoch mehrere Spalten in der ORDER BY-Klausel verwenden.
Wenn mehrere Spalten in ORDER BY verwendet werden, werden die Zeilen zuerst nach der ersten Spalte und dann nach der zweiten Spalte sortiert. Nehmen wir ein Beispiel, um dies zu verstehen.
Table: MITARBEITER
EMP_ID EMP_NAME COUNTRY CITY PINCODE------ -------- ------- ---- -------1001 Paul India Noida 2013101005 Raul India Agra 2831261002 Ajeet India Noida 2013011003 Jon India Agra 2820081006 David India Agra 2820051004 Chetan India Noida 201313
Sortieren Sie die Zeilen zuerst nach der Stadt und dann nach dem Pincode innerhalb jeder Stadt:
SELECT * FROM EMPLOYEEORDER BY CITY, PINCODE;
Ergebnis:
Wie Sie sehen können, werden die Zeilen nach STADT und dann innerhalb der Stadt nach Pincode sortiert.
EMP_ID EMP_NAME COUNTRY CITY PINCODE------ -------- ------- ---- -------1006 David India Agra 2820051003 Jon India Agra 2820081005 Raul India Agra 2831261002 Ajeet India Noida 2013011001 Paul India Noida 2013101004 Chetan India Noida 201313
Sortieren der Zeilen basierend auf der Stadt zuerst in aufsteigender Reihenfolge und dann nach Pincode in absteigender Reihenfolge innerhalb jeder Stadt:
SELECT * FROM EMPLOYEEORDER BY CITY ASC, PINCODE DESC;
Ergebnis:
Wie Sie sehen können, werden die Zeilen nach STADT in aufsteigender Reihenfolge und dann innerhalb der Stadt in umgekehrter Reihenfolge nach Pincode sortiert.
EMP_ID EMP_NAME COUNTRY CITY PINCODE------ -------- ------- ---- -------1005 Raul India Agra 2831261003 Jon India Agra 2820081006 David India Agra 2820051004 Chetan India Noida 2013131001 Paul India Noida 2013101002 Ajeet India Noida 201301