Предложение ORDER BY (Microsoft Access SQL)
Область применения: Access 2013 | Access 2016
Сортирует результирующие записи запроса по указанному полю или полям в порядке возрастания или убывания.
Синтаксис
SELECT fieldlist FROM table WHERE selectcriteria [ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
Инструкция SELECT, содержащая предложение ORDER BY, состоит из следующих частей:
Part | Описание |
---|---|
fieldlist | Имя извлекаемого поля или полей вместе с псевдонимами имени полей, агрегатными функциями SQL, предикатами выбора (ALL, DISTINCTROW или TOP) или другими параметрами инструкции SELECT . |
table | Имя таблицы, из которой извлекаются записи. Дополнительные сведения см. в предложении FROM . |
selectcriteria | Критерии выбора. Если инструкция содержит предложение WHERE , ядро СУБД Microsoft Access заказывает значения после применения условий WHERE к записям. |
поле1, поле2 | Имена полей, по которым сортируются записи. |
Замечания
ORDER BY является необязательным. Однако если вы хотите, чтобы данные отображались в отсортированном порядке, необходимо использовать ORDER BY.
Порядок сортировки по умолчанию возрастает (от A до Z, от 0 до 9). В обоих следующих примерах имена сотрудников сортируются в порядке фамилии:
SELECT LastName, FirstName
FROM Employees
ORDER BY LastName;
SELECT LastName, FirstName
FROM Employees
ORDER BY LastName ASC;
Чтобы выполнить сортировку в порядке убывания (от Z до A, от 9 до 0), добавьте зарезервированное слово DESC в конец каждого поля, которое нужно отсортировать в порядке убывания. В следующем примере производится выбор заработной платы и их сортировка по убыванию:
SELECT LastName, Salary
FROM Employees
ORDER BY Salary DESC, LastName;
Если в предложении ORDER BY указать поле, содержащее данные memo или объекта OLE, возникнет ошибка. Ядро СУБД Microsoft Jet не выполняет сортировку по полям этих типов.
ORDER BY обычно является последним элементом в инструкции SQL.
В предложение ORDER BY можно включить дополнительные поля. Записи сортируются сначала по первому полю, указанному после ORDER BY. Записи, имеющие равные значения в этом поле, затем сортируются по значению во втором указанном поле и т. д.
Пример
Инструкция SQL, показанная в следующем примере, использует предложение ORDER BY для сортировки записей по фамилии в порядке убывания (Z–A). В этом примере выполняется вызов процедуры EnumFields, который вы можете найти в примере для оператора SELECT.
Sub OrderByX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Select the last name and first name values from
' the Employees table, and sort them in descending
' order.
Set rst = dbs.OpenRecordset("SELECT LastName, " _
& "FirstName FROM Employees " _
& "ORDER BY LastName DESC;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print recordset contents.
EnumFields rst, 12
dbs.Close
End Sub
Об участниках
Ссылка, предоставляемая участником сообщества UtterAccess .
UtterAccess — это премиальный вики-портал и форум, посвященный Microsoft Access.
См. также
- Форум для разработчиков Access
- Помощь при работе с Access на support.office.com
- Форумы Access на UtterAccess
- Справочный центр (FMS) для разработки и VBA программирования для Access
- Публикации по Access на StackOverflow
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.