Freigeben über


Order By Clause (Visual Basic)

Gibt die Sortierreihenfolge für ein Abfrageergebnis an.

Syntax

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

Bestandteile

orderExp1 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 anhand der Ascending Oder Descending Schlüsselwörter in aufsteigender oder absteigender Reihenfolge identifizieren. Wenn keine oder Descending kein Ascending Schlüsselwort angegeben ist, ist die Standardsortierreihenfolge aufsteigend. Die Sortierreihenfolgefelder haben Vorrang von links nach rechts.

Bemerkungen

Sie können die Order By Klausel verwenden, um die Ergebnisse einer Abfrage zu sortieren. Die Order By Klausel kann nur ein Ergebnis basierend auf der Bereichsvariable für den aktuellen Bereich sortieren. Beispielsweise führt die Select Klausel einen neuen Bereich in einem Abfrageausdruck mit neuen Iterationsvariablen für diesen Bereich ein. Bereichsvariablen, die vor einer Select Klausel in einer Abfrage definiert sind, 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 der Select Klausel platzieren. Ein Beispiel dafür ist, dass 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 (Standardeinstellung). Bücher mit demselben Preis werden nach Titel in aufsteigender Reihenfolge sortiert. Die Select Klausel wählt die und Price die Title Eigenschaften 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 demselben Preis werden nach Titel in aufsteigender Reihenfolge 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 den Buchtitel, den Preis, das Veröffentlichungsdatum und den Autor auszuwählen. Anschließend werden die TitleFelder der PricePublishDateAuthor Bereichsvariablen für den neuen Bereich aufgefüllt. Die Order By Klausel sortiert die neue Bereichsvariable nach Autorname, Buchtitel und dann 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

Siehe auch