ORDER BY-Klausel (Visual Basic)

Gibt die Sortierreihenfolge für ein Abfrageergebnis an.

Syntax

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]

Bestandteile

orderExp1 ist erforderlich. Mindestens ein Feld aus dem aktuellen Abfrageergebnis, das angibt, wie die zurückgegebenen Werte sortiert werden. Die Feldnamen müssen durch Kommas (,) getrennt werden. Sie können jedes Feld in aufsteigender oder absteigender Reihenfolge sortiert identifizieren, indem Sie die Schlüsselwörter Ascending oder Descending verwenden. Wenn keine Ascending- oder Descending-Schlüsselwort angegeben ist, lautet die Standardsortierreihenfolge aufsteigend. Die Sortierreihenfolgefelder haben von links nach rechts Vorrang.

Bemerkungen

Sie können die Order By-Klausel verwenden, um die Ergebnisse einer Abfrage zu sortieren. Die Order By-Klausel kann ein Ergebnis nur auf Basis der Bereichsvariable für den aktuellen Bereich sortieren. Die Select-Klausel führt beispielsweise einen neuen Bereich in einem Abfrageausdruck mit neuen Iterationsvariablen für diesen Bereich ein. Bereichsvariablen, die vor einer Select-Klausel in einer Abfrage definiert wurden, sind nach der Select-Klausel nicht verfügbar. Wenn Sie ihre Ergebnisse daher nach einem Feld sortieren möchten, das in der Select-Klausel nicht verfügbar ist, müssen Sie die Order By-Klausel vor die Select-Klausel setzen. Ein Beispiel dafür ist, wenn Sie die Abfrage nach Feldern sortieren möchten, die nicht als Teil des Ergebnisses zurückgegeben werden.

Die aufsteigende und absteigende Reihenfolge für ein Feld wird durch die Implementierung der IComparable-Schnittstelle für den Datentyp des Felds bestimmt. Wenn der Datentyp die IComparable-Schnittstelle nicht implementiert, wird die Sortierreihenfolge ignoriert.

Beispiel 1

Der folgende Abfrageausdruck verwendet eine From-Klausel, um eine Bereichsvariable book für die books-Auflistung zu deklarieren. Die Order By-Klausel sortiert das Abfrageergebnis nach Preis in aufsteigender Reihenfolge (Standard). Bücher mit dem gleichen Preis werden in aufsteigender Reihenfolge nach Titel sortiert. Die Select-Klausel wählt die Eigenschaften Title und Price als die von der Abfrage zurückgegebenen Werte aus.

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

Beispiel 2

Der folgende Abfrageausdruck verwendet die Order By-Klausel, um das Abfrageergebnis nach Preis in absteigender Reihenfolge zu sortieren. Bücher mit dem gleichen Preis werden in aufsteigender Reihenfolge nach Titel sortiert.

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

Beispiel 3

Der folgende Abfrageausdruck verwendet eine Select-Klausel, um Buchtitel, Preis, Veröffentlichungsdatum und Autor auszuwählen. Anschließend werden die Felder Title, Price, PublishDate und Author der Bereichsvariablen für den neuen Bereich gefüllt. Die Order By-Klausel sortiert die neue Bereichsvariable nach Autorname, Buchtitel und Preis. Jede Spalte wird in der Standardreihenfolge (aufsteigend) sortiert.

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

Weitere Informationen