ORDER BY-Klausel (Visual Basic)
Aktualisiert: November 2007
Gibt die Sortierreihenfolge für ein Abfrageergebnis an.
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Bestandteile
- orderExp1
Erforderlich. Ein oder mehrere Felder des aktuellen Abfrageergebnisses, die die Reihenfolge der zurückgegebenen Werte angeben. Die Feldnamen müssen durch Kommas (,) voneinander getrennt werden. Sie können für die Felder mithilfe der Schlüsselwörter Ascending oder Descending eine aufsteigende bzw. absteigende Reihenfolge festlegen. Wenn kein Ascending-Schlüsselwort oder Descending-Schlüsselwort angegeben ist, wird standardmäßig die aufsteigende Sortierreihenfolge verwendet. Die Rangfolge bei Feldern bezüglich der Sortierreihenfolge verläuft von links nach rechts.
Hinweise
Sie können die Order By-Klausel verwenden, um die Ergebnisse einer Abfrage zu sortieren. Die Order By-Klausel kann ein Ergebnis nur auf Grundlage der Bereichsvariablen für den aktuellen Bereich sortieren. Beispielsweise wird mit der Select-Klausel ein neuer Bereich in einem Abfrageausdruck mit neuen Iterationsvariablen für diesen Bereich eingeführt. Bereichsvariablen, die vor einer Select-Klausel in einer Abfrage definiert sind, sind nach der Select-Klausel nicht verfügbar. Wenn Sie die Reihenfolge der Ergebnisse anhand eines Felds festlegen möchten, das nicht in der Select-Klausel verfügbar ist, muss die Order By-Klausel der Select-Klausel vorangestellt werden. Dies ist beispielsweise dann notwendig, wenn Sie eine Abfrage nach Feldern sortieren möchten, die nicht als Teil des Ergebnisses zurückgegeben werden.
Die aufsteigende bzw. 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
Der folgende Abfrageausdruck verwendet eine From-Klausel zum Deklarieren einer Bereichsvariablen book für die books-Auflistung. Die Order By-Klausel sortiert das Abfrageergebnis nach Preis in aufsteigender Reihenfolge (Standard). Bücher mit dem gleichen Preis werden nach Titel in aufsteigender Reihenfolge sortiert. Die Select-Klausel wählt nur die Title-Eigenschaft als den von der Abfrage zurückgegebenen Wert aus.
Dim titlesAscendingPrice = From book In books _
Order By book.Price, book.Title _
Select book.Title, book.Price
Der folgende Abfrageausdruck verwendet die Order By-Klausel zum Sortieren des Abfrageergebnisses nach Preis in absteigender Reihenfolge. Bücher mit dem gleichen 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
Der folgende Abfrageausdruck verwendet eine Select-Klausel, um Buchtitel, Preis, Herausgeber und Autor auszuwählen. Dann werden das Title, Price, Publisher-Feld und das Author-Feld der Bereichsvariablen für den neuen Bereich mit Daten gefüllt. Die Order By-Klausel sortiert die neue Bereichsvariable nach Autorennamen, 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
Siehe auch
Konzepte
Einführung in LINQ in Visual Basic