Klauzula ORDER BY w programie Access sortuje rekordy stanowiące wynik zapytania według określonego pola lub pól w kolejności rosnącej lub malejącej.
Składnia
SELECT lista_pól
FROM tabela WHERE kryteria_wyboru [ORDER BY pole1 [ASC | DESC ][, pole2 [ASC | DESC ]][, ...]]]Instrukcja SELECT zawierająca klauzulę ORDER BY składa się z następujących segmentów:
Segment |
Opis |
lista_pól |
Nazwa pola lub pól, jakie mają być pobierane wraz ze wszystkimi ewentualnymi aliasami nazw pól, funkcje agregujące w języku SQL, orzeczenia wyboru (ALL, DISTINCT, DISTINCTROW i TOP) lub inne opcje instrukcji SELECT. |
tabela |
Nazwa tabeli, z której są pobierane rekordy. |
kryteria_wyboru |
Kryteria wyboru. Jeśli instrukcja zawiera klauzulę WHERE, aparat bazy danych programu Microsoft Access porządkuje wartości po zastosowaniu warunków klauzuli WHERE do rekordów. |
pole1, pole2 |
Nazwy pól, według których mają być sortowane rekordy. |
Spostrzeżenia
Klauzula ORDER BY jest opcjonalna. Jednak aby wyświetlać dane w posortowanej kolejności, musisz użyć klauzuli ORDER BY.
Domyślna kolejność sortowania jest rosnąca (od A do Z, od 0 do 9). W obu poniższych przykładach następuje sortowanie imion i nazwisk pracowników według nazwisk:
SELECT LastName, FirstName
FROM Employees ORDER BY LastName;
SELECT LastName, FirstName
FROM Employees ORDER BY LastName ASC;
Aby sortować w kolejności malejącej (od Z do A, od 9 do 0), dodaj słowo zastrzeżone DESC po nazwie każdego pola, które chcesz posortować w kolejności malejącej. W przykładzie poniżej następuje wybranie danych o wypłatach i ich posortowanie w porządku malejącym:
SELECT LastName, Salary
FROM Employees ORDER BY Salary DESC, LastName;
W przypadku podania w klauzuli ORDER BY pola zawierającego dane typu Nota lub Obiekt OLE wystąpi błąd. Aparat bazy danych programu Microsoft Access nie sortuje według pól tego typu.
Klauzula ORDER BY stanowi zazwyczaj ostatni element instrukcji SQL.
W klauzuli ORDER BY można uwzględnić dodatkowe pola. Rekordy są sortowane najpierw według pierwszego pola na liście wymienionego po klauzuli ORDER BY. Rekordy o jednakowych wartościach w tym polu są następnie sortowane według wartości w drugim wymienionym polu i tak dalej.