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 column-name-1, column-name-2,... FROM table-name ORDER BY order-by-column-name
Dabei müssen column-name-1, column-name-2 und table-name durch die Namen der Spalten und Tabelle ersetzt werden, die Sie abfragen möchten, und order-by-column-name muss durch eine Spalte in der Tabelle ersetzt werden. Sie können das Sternchen als eine Kurzform für alle Spalten in der Tabelle verwenden.
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 SELECT-Liste 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.
Führen Sie in Interactive SQL folgende Abfrage aus, um die Produkte in alphabetischer Reihenfolge aufzulisten:
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 |
... | ... | ... |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |