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