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 Titlepola , Price, PublishDatei 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

Zobacz też