Sofern nicht anders angegeben, gibt der Datenbankserver die Zeilen einer Tabelle in einer beliebigen Reihenfolge zurück. Es ist jedoch häufig hilfreich, die Zeilen in einer bestimmten Reihenfolge anzuzeigen. Sie können die Produkte zum Beispiel in alphabetischer Reihenfolge einsehen.
Sortieren Sie die Zeilen in der Ergebnismenge durch Hinzufügen einer ORDER BY-Klausel am Ende der SELECT-Anweisung. Diese SELECT-Anweisung hat die folgende Syntax:
SELECT Spaltenname-1, Spaltenname-2,… FROM Tabellenname ORDER BY nach_Spaltennamen_sortieren
Dabei müssen Spaltenname_1, Spaltenname_2 und Tabellenname durch die Namen der Spalten und Tabelle ersetzt werden, die Sie abfragen möchten, und nach_Spaltennamen_sortieren muss durch eine Spalte in der Tabelle ersetzt werden. Wie zuvor können Sie das Sternchen als eine Kurzform für alle Spalten in der Tabelle verwenden.
Führen Sie in Interactive SQL folgende Abfrage aus:
SELECT ID, Name, Description FROM Products ORDER BY Name; |
ID | Name | Description |
---|---|---|
400 | Baseball Cap | Cotton Cap |
401 | Baseball Cap | Wool cap |
700 | Shorts | Cotton Shorts |
600 | Sweatshirt | Hooded Sweatshirt |
... | ... | ... |
Die Reihenfolge der Klauseln ist wichtig Die ORDER BY-Klausel muss auf die FROM- und die SELECT-Klausel folgen.
Sie können eine aufsteigende oder absteigende Sortierreihenfolge festlegen Die Standardreihenfolge ist aufsteigend. Sie können eine absteigende Sortierreihenfolge festlegen, indem Sie das Schlüsselwort DESC am Ende der Klausel hinzufügen, wie in der folgenden Abfrage:
SELECT ID, Quantity FROM Products ORDER BY Quantity DESC; |
ID | Quantity |
---|---|
400 | 112 |
700 | 80 |
302 | 75 |
301 | 54 |
600 | 39 |
... | ... |
Sie können nach mehreren Spalten sortieren Die folgende Abfrage sortiert zuerst nach Größe (alphabetisch) und dann nach Namen:
SELECT ID, Name, Size FROM Products ORDER BY Size, Name; |
ID | Name | Size |
---|---|---|
600 | Sweatshirt | Large |
601 | Sweatshirt | Large |
700 | Shorts | Medium |
301 | Tee Shirt | Medium |
... | ... | ... |
Die ORDER BY-Spalte muss nicht Bestandteil der Auswahlliste sein Die folgende Abfrage sortiert die Produkte nach dem Stückpreis, obgleich der Preis nicht in der Ergebnismenge enthalten ist.
SELECT ID, Name, Size FROM Products ORDER BY UnitPrice; |
ID | Name | Size |
---|---|---|
500 | Visor | One size fits all |
501 | Visor | One size fits all |
300 | Tee Shirt | Small |
400 | Baseball Cap | One size fits all |
... | ... | ... |
Wenn Sie keine ORDER BY-Klausel verwenden und eine Abfrage mehr als einmal ausführen, hat es den Anschein, als würden unterschiedliche Ergebnisse abgerufen. Dies ist darauf zurückzuführen, dass SQL Anywhere dasselbe Ergebnis mit einer anderen Reihenfolge zurückgibt. Ohne die Klausel ORDER BY gibt SQL Anywhere die Zeilen in der jeweils effizientesten Reihenfolge zurück. Das bedeutet, dass das Erscheinungsbild der Ergebnismengen abhängig davon variieren kann, wann Sie zuletzt auf die Zeile zugegriffen haben etc. Die einzige Möglichkeit, sicherzustellen, dass Zeilen in einer bestimmten Reihenfolge zurückgegeben werden, ist die Verwendung von ORDER BY.
Mit Indizes die Performance der ORDER BY-Klausel steigern
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |