Order By — Klauzula (Visual Basic)
Określa kolejność sortowania dla wyniku zapytania.
Składnia
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
generatora
orderExp1
Wymagane. Co najmniej jedno pole z bieżącego wyniku zapytania, które identyfikuje sposób zamawiania zwracanych wartości. Nazwy pól muszą być oddzielone przecinkami (,). Każde pole można zidentyfikować jako posortowane w kolejności rosnącej lub malejącej przy użyciu Ascending
słów kluczowych lub Descending
. Jeśli nie Ascending
określono słowa kluczowego lub Descending
nie, domyślna kolejność sortowania jest rosnąca. Pola kolejności sortowania mają pierwszeństwo od lewej do prawej.
Uwagi
Możesz użyć klauzuli Order By
, aby posortować wyniki zapytania. Klauzula Order By
może sortować wynik tylko na podstawie zmiennej zakresu dla bieżącego zakresu. Na przykład klauzula Select
wprowadza nowy zakres w wyrażeniu zapytania z nowymi zmiennymi iteracji dla tego zakresu. Zmienne zakresu zdefiniowane przed klauzulą Select
w zapytaniu nie są dostępne po klauzuli Select
. W związku z tym, jeśli chcesz uporządkować wyniki według pola, które nie jest dostępne w klauzuli Select
, musisz umieścić klauzulę Order By
przed klauzulą Select
. Jednym z przykładów tego, kiedy trzeba by to zrobić, jest posortowanie zapytania według pól, które nie są zwracane w ramach wyniku.
Kolejność rosnąca i malejąca dla pola jest określana przez implementację IComparable interfejsu dla typu danych pola. Jeśli typ danych nie implementuje interfejsu IComparable , kolejność sortowania jest ignorowana.
Przykład 1
Następujące wyrażenie zapytania używa klauzuli w From
celu zadeklarowania zmiennej book
zakresu dla kolekcji books
. Klauzula Order By
sortuje wynik zapytania według ceny w kolejności rosnącej (wartość domyślna). Książki o tej samej cenie są sortowane według tytułu w kolejności rosnącej. Klauzula Select
wybiera Title
właściwości i Price
jako wartości zwracane przez zapytanie.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
Przykład 2
Następujące wyrażenie zapytania używa klauzuli , Order By
aby posortować wynik zapytania według ceny w kolejności malejącej. Książki o tej samej cenie są sortowane według tytułu w kolejności rosnącej.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
Przykład 3
Poniższe wyrażenie zapytania używa klauzuli , Select
aby wybrać tytuł książki, cenę, datę publikacji i autora. Następnie wypełnia Title
pola , Price
, PublishDate
i Author
zmiennej zakresu dla nowego zakresu. Klauzula Order By
nakazuje nową zmienną zakresu według nazwy autora, tytułu książki, a następnie ceny. Każda kolumna jest sortowana w kolejności domyślnej (rosnąco).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price