Примечание
Не используйте никакие ключевые слова SQL в качестве псевдонимов. Это вызовет путаницу или синтаксические ошибки. РСУБД может интерпретировать данный псевдоним как команду.
Условие ORDER BY
Предположим, что службе поддержки необходим список клиентов sTunes. Целесообразно упорядочить полученные результаты по фамилии клиентов. Чтобы сделать это, надо использовать новое условие после условия FROM. Условие ORDERBY используется для сортировки данных в порядке возрастания или убывания на основе одного или нескольких столбцов. По умолчанию данные будут отсортированы в порядке возрастания от A до Z. Специальное ключевое слово ASC, определяющее порядок сортировки, необязательно. Для сортировки в порядке убывания от Z до A необходимо после сортируемого поля добавить ключевое слово DESC. Например, запрос ORDERBYLastNameDESC сортирует столбец с псевдонимом LastName в порядке убывания.
/*
CREATED BY: Уолтер Шилдс
CREATED ON: 13.03.2018
DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии и электронной почты из таблицы customers (клиенты), отсортированных
по фамилии (Last Name).
*/
SELECT
FirstName AS [First Name],
LastName AS [Last Name],
Email AS [EMAIL]
FROM
customers
ORDER BY
LastName ASC
Рис. 37
Примечание
Если условие ORDER BY отсутствует, каждый запрос будет возвращать данные в том порядке, в котором они были изначально сохранены в таблице.
Рис. 38
Также условие ORDERBY мы можем использовать для сортировки по нескольким столбцам. В данном примере мы выполним сначала сортировку по имени (по алфавиту), а затем по фамилии (в обратном порядке). Для этого нам необходимо в условии ORDERBY указать два поля. При перечислении нескольких полей их необходимо разделять запятыми.
/*
CREATED BY: Уолтер Шилдс
CREATED ON: 13.03.2018
DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии и электронной почты из таблицы customers (клиенты), отсортированных сначала по имени (по возрастанию), а затем по фамилии (по убыванию).
*/
SELECT
FirstName AS [First Name],
LastName AS [Last Name],
Email AS [EMAIL]
FROM
customers
ORDER BY
FirstName ASC,
LastName DESC
Выполним данный запрос и проанализируем имена клиентов, начинающиеся с буквы D. Мы видим, что имена расположены по алфавиту, а фамилии — в обратном порядке.
Примечание
Если вы используете условие ORDER BY для столбца, в котором имеются пустые строки, вы увидите, что эти значения будут отображаться в начале списка как NULL (если сортировка осуществляется в порядке возрастания).
Практические задания
• Измените порядок полей в условии SELECT и установите LastName первым столбцом, а не вторым. Выполните запрос, в результате которого будут получены упорядоченные записи LastName. Стал ли список более читабельным?
Получение ограниченного числа записей с помощью условия LIMIT
В предыдущих примерах мы осуществляли выборку всех записей из таблицы customers. Хотя мы ограничили наши записи тремя полями и отсортировали эти поля, в панели сообщений мы видим, что каждый раз мы возвращаем 59 строк. Если нет необходимости в просмотре всех 59 записей, мы можем ограничить наши результаты определенным количеством строк. Это бывает полезно при сортировке по количеству (которое мы продемонстрируем позже), например по самой высокой цене или самым большим продажам. Если после условия ORDERBY мы добавим ключевые слова LIMIT10, в результате вернутся только первые десять записей в указанном порядке сортировки. Можно указать любое число записей, которое необходимо отобразить (при условии, что в таблице имеется такое количество записей).
/*
CREATED BY: Уолтер Шилдс
CREATED ON: 13.03.2018
DESCRIPTION: Данный запрос осуществляет выборку первых 10 записей из таблицы customers (клиентов), отсортированных сначала по имени (по возрастанию), а затем по фамилии (по убыванию).
*/
SELECT
FirstName AS [First Name],
LastName AS [Last Name],
Email AS [EMAIL]
FROM
customers
ORDER BY
FirstName ASC,
LastName DESC
LIMIT 10