Поделиться через


Предложение 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.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.