Order By – klauzule (Visual Basic)
Určuje pořadí řazení výsledku dotazu.
Syntaxe
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Součástky
orderExp1
Požadované. Jedno nebo více polí z aktuálního výsledku dotazu, které určují pořadí vrácených hodnot. Názvy polí musí být oddělené čárkami (,). Pomocí klíčových slov můžete každé pole identifikovat jako seřazené vzestupně nebo sestupně Ascending
Descending
. Pokud není zadáno žádné Ascending
nebo Descending
klíčové slovo, výchozí pořadí řazení je vzestupné. Pole pořadí řazení mají přednost zleva doprava.
Poznámky
Pomocí klauzule můžete Order By
výsledky dotazu seřadit. Klauzule Order By
může řadit pouze výsledek na základě proměnné rozsahu pro aktuální obor. Klauzule Select
například zavádí nový obor ve výrazu dotazu s novými iteračními proměnnými pro tento obor. Proměnné rozsahu definované před Select
klauzulí v dotazu nejsou po klauzuli Select
k dispozici. Proto pokud chcete výsledky uspořádat podle pole, které není k dispozici v Select
klauzuli, musíte před klauzuli vložit Order By
klauzuli Select
. Jedním z příkladů, kdy byste to museli udělat, je, když chcete dotaz seřadit podle polí, která se nevracejí jako součást výsledku.
Vzestupné a sestupné pořadí pole je určeno implementací IComparable rozhraní pro datový typ pole. Pokud datový typ neimplementuje IComparable rozhraní, pořadí řazení se ignoruje.
Příklad 1
Následující výraz dotazu používá From
klauzuli k deklaraci proměnné book
rozsahu pro kolekci books
. Klauzule Order By
seřadí výsledek dotazu podle ceny ve vzestupném pořadí (výchozí). Knihy se stejnou cenou jsou seřazené podle názvu ve vzestupném pořadí. Klauzule Select
vybere Title
a Price
vlastnosti jako hodnoty vrácené dotazem.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
Příklad 2
Následující výraz dotazu používá Order By
klauzuli k seřazení výsledku dotazu podle ceny v sestupném pořadí. Knihy se stejnou cenou jsou seřazené podle názvu ve vzestupném pořadí.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
Příklad 3
Následující výraz dotazu používá Select
klauzuli k výběru názvu knihy, ceny, data publikování a autora. Potom naplní proměnnou rozsahu Title
, Price
PublishDate
a Author
pole proměnné rozsahu pro nový obor. Klauzule Order By
objedná novou proměnnou rozsahu podle jména autora, názvu knihy a ceny. Každý sloupec je seřazený ve výchozím pořadí (vzestupně).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price