Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Daten abfragen

 

Die ORDER BY-Klausel: Ergebnisse sortieren

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.

♦  So listen Sie die Produkte in alphabetischer Reihenfolge auf
Hinweise
  • 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