Какое ключевое слово обозначает сортировку по убыванию
По умолчанию, записи выводимых в таблице данных упорядочиваются так, чтобы это сопровождалось наименьшими издержками с точки зрения траты компьютерных ресурсов. Как правило, порядок вывода связан с физической последовательностью выводимых записей в БД.
При необходимости, можно явно задать способ сортировки записей в таблице. Для этого используется ключевое слово ORDER BY .
Формат использования: ORDER BY , где в качестве данных для сортировки могут использоваться названия полей данных по которым сортируется таблица, либо номера столбцов таблицы выводимой в результате запроса (нумерация столбцов идет с 1). Данные для сортировки перечисляются через запятую.
Допускается выполнять сортировку по полям БД, не выводимым в итоговой таблице. Ключевое слово ORDER BY располагается в запросе после ключевых слов FROM , WHERE , GROUP BY , HAVING .
Сортировка может выполняться как по одному полю, так и по нескольким. При сортировке по нескольким полям, сначала производится сортировка по первому указанному полю, затем — по второму, и т.д.
По умолчанию, сортировка выполняется по возрастанию значений поля, для выполнения сортировки по уменьшению значений, задайте ключевое слово DESC после названия поля сортировки. При сортировке по нескольким полям допускается для части полей сортировка по возрастанию значений, а для части — по уменьшению.
Примеры сортировки данных
Сортировка по одному полю
SELECT area, perimeter FROM Здания ORDER BY Sys
Сортирует итоговую таблицу по значениям поля Sys при том, что поле Sys не выводится в таблице.
Сортировка по нескольким полям
SELECT area, perimeter FROM Здания ORDER BY [Количество этажей], Area
Сортирует таблицу сначала по значению поля Количество этажей , а затем — по Area .
Сортировка по столбцу итоговой таблицы
SELECT area/perimeter FROM Здания ORDER BY 1
Сортирует таблицу по первому ее столбцу (частному от деления площадей зданий на их периметры).
Сортировка по убыванию значений
SELECT area, perimeter FROM Здания ORDER BY Area DESC
Сортирует таблицу по убыванию значения поля Area .
Сортировка по возрастанию и по убыванию значений
SELECT area, perimeter FROM Здания ORDER BY Area DESC, Sys
Сортирует таблицу по убыванию значения поля Area , записи с равными значениями данного поля сортируются по возрастанию значения поля Sys .
Сортировка результатов — Основы аналитики на SQL
Сортировка данных — это важный инструмент для анализа данных. Она позволяет указывать, в каком порядке нужно выводить результатов запроса. Таким образом мы можем с легкостью найти наибольшие или наименьшие значения в столбце — продукт с самой высокой ценой или магазин с наибольшим количеством продаж. Так мы выделяем наиболее значимые данные и сосредотачиваемся на их анализе.
В этом уроке мы обсудим, как сортировать данные с помощью оператора ORDER BY .
Базовый синтаксис
Синтаксис сортировки данных в SQL с использованием оператора ORDER BY выглядит так:
SELECT названия_колонок> FROM таблица> ORDER BY название_колонки1> [ASC|DESC], название_колонки2> [ASC|DESC], .
Рассмотрим его подробнее:
- — список столбцов, которые мы хотим выбрать
- — название таблицы, из которой мы выбираем данные
- , , . — столбцы, по которым мы хотим отсортировать данные
- [ASC|DESC] — необязательная опция, которая указывает направление сортировки
Обсудим последнюю опцию. С ее помощью мы задаем направление сортировки, используя ключевые слова:
- ASC — сортировка по возрастанию (от меньшего к большему, от более ранних дат к более поздним)
- DESC — сортировка в обратную сторону, то есть по убыванию
Когда мы используем оператор ORDER BY без указания направления сортировки, по умолчанию используется ASC .
Возьмем нашу базу продаж и отсортируем список продуктов по убыванию цены:
SELECT product_name, price FROM products ORDER BY price DESC;
В этом примере мы выбираем столбцы product_name и price из таблицы products , а затем сортируем результаты по столбцу price в порядке убывания. Таким образом, мы получим список продуктов от дорогих к дешевым:
Также мы можем сортировать данные по нескольким столбцам. Например, отсортируем таблицу продаж по дате и количеству продаж:
SELECT sale_date, quantity FROM sales ORDER BY sale_date ASC, quantity DESC;
В этом примере мы выбираем столбцы sale_date и quantity из таблицы sales . Затем мы сортируем результаты сначала по столбцу sale_date в порядке возрастания, а затем — по столбцу quantity в порядке убывания. В итоге получаем список продаж, отсортированных сначала по дате, а затем — по количеству продаж:
Мы можем указывать не только имена столбцов в операторе ORDER BY , но еще и использовать порядок сортировки столбцов. Это делается с помощью выражения ORDER BY 1, 2, . n , где числа соответствуют позиции столбцов в выборке.
Это удобно, когда мы работаем с большими наборами данных и хотим отсортировать результаты по нескольким столбцам. Здесь можно не прописывать имена столбцов, а просто можно перечислить их позиции. Так удобнее и читать запрос, и писать его.
Возьмем для примера следующий запрос:
SELECT product_name, category, price FROM products ORDER BY 3 DESC, 2 ASC;
В ответ на него мы получим такой результат:
Здесь мы указываем позиции двух столбцов:
- 3 для сортировки по столбцу price
- 2 для сортировки по столбцу category
Такой подход позволяет нам сократить код и сделать его более лаконичным.
Обработка нулевых значений
При работе с оператором ORDER BY нужно не забывать про NULL -значения — с ними есть несколько тонкостей.
Первая важная особенность — значение NULL зависит от направления сортировки. Среди любых ненулевых значений NULL может быть:
- Либо наименьшим значением — в запросах с опцией ASC (при сортировке по возрастанию)
- Либо наибольшим значением — в запросах с опцией DESC (при сортировке по убыванию)
Другими словами, при сортировке по возрастанию нулевые значения будут отображаться в начале результата, а при сортировке по убыванию — в конце. Так происходит по умолчанию.
Но можно отойти от варианта по умолчанию и явно указать, где должны располагаться значения NULL в результирующем наборе данных. Для этого можно пользоваться двумя расширениями:
- NULLS LAST — оно указывает, что значения NULL должны быть в конце результата. Обычно его используют при сортировке по возрастанию
- NULLS FIRST — оно указывает, что значения NULL должны быть в начале результата. Его используют в сортировке по убыванию
Оба расширения помогают убрать значения NULL , чтобы они не влияли на порядок вывода ненулевых значений.
Предположим, у нас есть таблица customers с информацией о клиентах. В ней есть столбцы customer_id , customer_name и age . Создадим новую таблицу с NULL -значениями в столбце age :
CREATE TABLE customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(255), age INT ); INSERT INTO customers (customer_id, customer_name, age) VALUES (1, 'John', 30), (2, 'Jane', NULL), (3, 'Mike', 40), (4, 'Sarah', NULL), (5, 'David', 25);
Выведем данные с помощью такого запроса:
SELECT * FROM customers;
Новая таблица будет выглядеть так:
Теперь попробуем убрать нулевые значения в начало или конец списка.
Отсортируем по возрастанию с расширением NULLS LAST :
SELECT customer_id, customer_name, age FROM customers ORDER BY age ASC NULLS LAST;
Результат будет следующим:
Как видим, значения NULL отображаются в конце результата после всех ненулевых значений.
Похожим образом работает сортировка по убыванию с расширением NULLS FIRST :
SELECT customer_id, customer_name, age FROM customers ORDER BY age DESC NULLS FIRST;
Здесь значения NULL отображаются в начале результата перед всеми ненулевыми значениями.
Как видите, расширения NULLS LAST и NULLS FIRST позволяют контролировать положение значений NULL и адаптировать результаты запроса так, чтобы нам было удобно работать с результатами.
Сортировка с агрегацией
Кроме того, сортировку данных можно сочетать с агрегатными функциями — COUNT , SUM и AVG . Таким образом, можно найти самые частые или самые редкие повторяющиеся значения в столбце. Например, можно найти самый популярный продукт или клиента с наибольшим количеством заказов.
Например, отсортируем продукты по количеству продаж:
SELECT product_id, SUM(quantity) AS total_sales FROM sales GROUP BY product_id ORDER BY total_sales DESC;
Разберемся, что происходит в этом коде:
- SELECT product_id, SUM(quantity) AS total_sales — выбираем столбец product_id , вычисляем сумму продаж для каждого уникального product_id и задаем псевдоним total_sales для результирующего столбца с суммой продаж
- FROM sales — указываем, что данные берутся из таблицы sales
- GROUP BY product_id — группируем данные по уникальным значениям столбца product_id . Это означает, что в результате мы увидим product_id — отдельную строку для каждого уникального значения
- ORDER BY total_sales DESC — сортируем результаты по столбцу total_sales в порядке убывания от большего к меньшему
Есть коротко, этот код возвращает результаты запроса, в которых продукты отображаются в порядке убывания общей суммы продаж. Продукт с наибольшей суммой продаж будет первым в результате, а продукт с наименьшей суммой — в самом конце.
Сортировка с оператором LIMIT
Кроме того, мы можем отсортировать данные одновременно с ограничением размера выборки. В этом помогает оператор LIMIT . Это полезно, когда мы хотим вывести несколько значений из начала или конца результирующего набора.
Для примера выберем из нашей базы пять продуктов с самой высокой ценой:
SELECT product_name, price FROM products ORDER BY price DESC LIMIT 5;
Здесь мы сортируем данные по столбцу price в обратном порядке ( DESC ). Затем мы используем оператор LIMIT и ограничиваем выборку пятью первыми результатами:
Это очень удобно при работе с большими объемами данных — можно вывести не все соответствующие результаты, а только значимые для анализа.
Выводы
В этом уроке мы изучили сортировку данных. Она помогает структурировать информацию, выделять значимые значения, определять тенденции и принимать обоснованные решения на основе анализа данных. Подведем краткие итоги этого урока:
- Данные сортируются с помощью оператора ORDER BY , который позволяет управлять порядком вывода результатов запроса
- Синтаксис оператора ORDER BY включает список столбцов, по которым мы хотим отсортировать данные
- По умолчанию сортировка происходит по возрастанию ( ASC ), но можно и указать сортировку по убыванию ( DESC )
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Какое ключевое слово обозначает сортировку по убыванию



Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Сортировка записей по текстовым, числным значениям или значениям дат
Сортировка данных может играть важную роль в том, чтобы отчет или форма были эффективными и простыми в использовании. Например, каталог товаров, в который перечисляются товары в алфавитном порядке или на основе цены за единицу, гораздо проще использовать, чем каталог, в который перечислены товары в случайном порядке.
В этой теме объясняется, как сортировать записи при просмотре и разработке таблицы, запроса, формы или отчета.
В этом разделе.
- Введение
- Сортировка записей в представлении
- Удаление порядка сортировки
- Сохранение порядка сортировки с объектом
Введение
Вы можете отсортировать записи в таблице, запросе, форме или отчете по одному или несколько полям. При минимальной разработке вы и пользователи формы или отчета можете выбрать сортировку записей.
Например, при разработке отчета каталога товаров можно выбрать упорядочение товаров в алфавитном порядке. Порядок, который выбирается при разработке объекта, становится порядком сортировки по умолчанию. Однако при просмотре запроса или отчета каждый пользователь может сортировать записи нужным образом, например по цене или поставщику.
Примечание: Представление можно отсортировать по любому полю, которое отображается в нем, за исключением полей, содержащих вложения или объекты OLE.
Вы можете настроить результаты, отсортировать записи по более чем одному полю. При сортировке по нескольким полям важно определить, какие поля называются внешними и внутренними полями сортировки. Чтобы получить нужные результаты, необходимо назначить соответствующие поля внутренними и внешними полями сортировки. Предположим, вам нужно отсортировать таблицу «Контакты» по полям «Имя» и «Фамилия». Если нужно отсортировать имена по фамилиям от А до Я (от Я до А), имя — это внутреннее поле. С другой стороны, если фамилии нужно отсортировать по каждому имени, фамилия — это внутреннее поле. Другими образом, записи сначала сортировать (самый внешний) по полю «Фамилия», а затем — на самом внутреннем (самый внутренний) — в поле «Имя».
1. Фамилия — это внешнее поле, а firstName — внутреннее
2. FirstName — это внешнее поле, а фамилия — внутреннее
При применении порядка сортировки следует помнить о том, что числа, текст и специальные знаки сортироваться в соответствии с выбранным языком и региональными настройками компьютера. Если язык и региональные параметры, заданные в диалоговом окне «Параметры Access», не соответствуют настройкам, заданным на панели управления, итоговые параметров сортировки могут не соответствовать ожиданиям.
Просмотр или изменение языка или региона по умолчанию
Чтобы просмотреть языковые параметры в Access, нажмите кнопку «Параметры>». На вкладке «Общие»в области«Создание баз данных» просмотрите или измените значение в списке «Порядок сортировки новой базы данных». Установите параметр «Общий», если вы хотите использовать один из таких языков: afrikaans, Arabic, Arabic, Basque (Basque), Bulgarian, Catalan, Dutch, Dutch, English, Faeroese, Farsi, German-Standard, Greek, Hebrew, Hindi, Indonesian, Italian, Malay, Portuguese, Russian, Serbian, Swahili, and Urdu. Обратите внимание, что этот параметр влияет только на новые базы данных. Чтобы применить этот параметр к существующей базе данных, сначала сжатие базы данных.
Чтобы сжатие базы данных:
- Нажмите кнопку «Работа с базами данных>сжатие и восстановление базы данных.
Сведения о региональных параметрах компьютера см. в региональных параметрах Windows, чтобы изменить внешний вид некоторых типов данных.
Сортировка записей в представлении
Примечание: В Access сортировка отчета немного отличается от сортировки таблицы, запроса или формы.
Сортировка отчета
- Откройте отчет в конструкторе или макете.
- Если области «Группировка, сортировка и итоги» не открыты, в группе «Группировка & Итоги» (на вкладке «Формат» в представлении «Макет» или на вкладке «Конструктор» в конструкторе) щелкните «Группировка & Сортировка».
- Выполните одно из следующих действий:
- Если в отчете нет ни группировки, ни сортировки, нажмите кнопку «Добавить группу» в области «Группировка, сортировка и итоги», а затем выберите внешнее поле сортировки. Щелкните вторую стрелку вниз и выберите порядок значений. Щелкните «Еще»,затем щелкните стрелку справа от раздела с заглавным и выберите раздел без раздела. Повторите эти действия для каждого поля сортировки, при этом внутреннее поле сортировки появится внизу.
- Если отчет уже сгруппировать или отсортировать, просмотрите существующие уровни и внимательно внося изменения. Чтобы изменить поле, используйте первую стрелку вниз. Чтобы изменить порядок, щелкните вторую стрелку вниз. Чтобы изменению уровня группировки на уровень сортировки, измените в разделе с заглавными заглавными словами раздел без раздела.
Совет: Чтобы отсортировать отчет по одному полю, откройте отчет в представлении макета, щелкните его правой кнопкой мыши и выберите команду сортировки. Например, если выбрано поле «Возраст», выберите «Сортировка от минимального к наибольшему» или «Сортировка от наибольшего к минимальному». Но если отчет сгруппировать или отсортировать по нескольким полям, необходимо использовать области «Группировка, сортировка и итоги».
Сортировка таблицы, запроса или формы
- Определите поля, по которым нужно отсортировать поля. Чтобы отсортировать по двум или более полям, определите, какие поля будут явнее всего и как внутренние и внешние поля сортировки.
- Щелкните правой кнопкой мыши в любом месте столбца или управления, соответствующего внутреннему полю, и выберите одну из команд сортировки. Команды зависят от типа данных в выбранном поле.
Примечание: При сортировке данных по полю с типом данных «Да/Нет» значение «Да», «Истина» или «Включительно» считается «Выбрано», а значения «Нет», «Ложь» и «Отключено» считаются «Очищенными». По умолчанию поля этого типа отображаются как квадраты, но их можно настроить так, чтобы они отображались как текстовые поля или поля со полем со множеством полей. Если изменить тип поля на текстовое поле или поле со полем, оно будет сортироваться как «Выбрано» или «Очищено».
Примечание: Если текстовое поле содержит строки нулевой и нулевой длины, при сортировке по возрастанию сначала вы перечислены записи с нулевыми значениями, затем записи с нулевыми строками, а затем записи с непанными значениями.
- Значения, которые начинаются с пробела, будут отображаться перед буквами и цифрами.
- За значениями, заключенными в кавычках, начинаются пробелы, но предшествуют букво-числимым значениям.
- Значения, начинающегося со знака «минус»(-),предшествуют значениям, которые начинаются со знака «плюс»(+).
- Порядок определяется кодами всех остальных символов ASCII. Например, код для символа рубля ($) составляет 36, а код для знака равно (=) — 61, поэтому значения, начина которые начинаются с $, будут отображаться перед значениями, которые начинаются со знака =. Чтобы переопредить этот порядок, можно проигнорировать первый знак всех значений в поле. Этот метод работает, если значения в поле всегда начинаются с одного специального знака, например знака «минус» или с одинаковым количеством специальных знаков, так что вы знаете, сколько знаков нужно игнорировать. Пошаговую информацию о том, как сортировать части значений, см. в статье «Сортировка записей по частичным значениям в поле». Если количество символов, которые нужно игнорировать, различается, можно задать настраиваемый порядок сортировки. Пошаговую информацию см. в статье «Сортировка записей в пользовательском порядке».
Помните, что порядок сортировки нельзя удалить только из одного поля. Чтобы удалить сортировку из всех полей сортировки, на вкладке «Главная» в группе «Фильтр & сортировки» нажмите кнопку «Очистить все сортировки» и примените нужные порядки сортировки.
Дополнительные сценарии сортировки
При использовании команд сортировки для определения порядка записей используются тип данных поля и полные значения каждого поля. Но что делать, если вам нужно отсортировать текстовые значения, например «Понедельник», «Вторник» и так далее, в пользовательском порядке, а не в алфавитном порядке? Или вы хотите отсортировать текстовое поле с IP-адресами? Если ваши потребности в сортировке не выполнены командами сортировки, см. следующие разделы:
- Сортировка записей по частичным значениям поля Хотите отсортировать записи по первым или нескольким знакам в поле? Если вам удобно писать простые выражения, см. этот раздел, в который можно извлечь частичные значения с помощью выражений.
- Сортировка записей с учетом регистра Access не будет учитывать дело с текстовыми значениями. Например, значения кузнецов и Климов будут рассматриваться точно так же, и вы не сможете контролировать то, какое из них будет отображаться первым. Если вы хотите отсортировать данные счувствительными к делу данными, см. этот раздел.
- Сортировка записей по числовым значениям, хранящимся в текстовом поле Вы видите записи, отсортсортировали по отдельным цифрам, а не по числовому значению? Например, если записи со значениями 11 и 121 отображаются перед записями со значениями 2 или 25, см. эту статью.
- Сортировка записей в пользовательском порядке Если вы хотите отсортировать определенные значения, например названия дней (понедельник, вторник и так далее) или названия сотрудников (руководитель, директор) в определенном порядке, см. эту статью.
- Сортировка IP-адресов Поле, которое содержит IP-адреса, содержит несколько чисел и периодов(.), поэтому простая сортировка текста или числового типа не будет работать для IP-адресов. В этой теме вы узнаете, как сортировать IP-адреса.
Удаление порядка сортировки
- Чтобы удалить порядок сортировки из таблицы, запроса или формы, на вкладке «Главная» в группе «Фильтр & сортировки» нажмите кнопку «Очистить все сортировки». При этом порядок сортировки будет отсортироваться для всех полей в представлении.
- Чтобы удалить порядок сортировки из отчета, откройте области «Группировка, сортировка и итоги», нажав кнопку «Сортировка группы & &» в группе «Группировка и итоги» (на вкладке «Формат» в конструкторе на вкладке «Конструктор»). Затем выберите уровень сортировки, который нужно удалить, и нажмите кнопку «Удалить». Запись, соответствующая полю сортировки, начинается со слова «Сортировать по». Не удаляйте записи, начинающиесяс группировки, так как это изменит оформление отчета.
Сохранение порядка сортировки с объектом
Порядок сортировки, примененный последним, автоматически сохраняются вместе с таблицей, запросом, формой или отчетом. Если вы хотите, чтобы объект автоматически применялся при следующем его открытие, убедитесь, что для свойства OrderByOnLoad объекта установлено свойство Yes(Да).
Так как порядок сортировки, применяемой последним, время от времени будет меняться, порядок сортировки можно определить постоянно (или по умолчанию). Вы можете задать порядок сортировки по умолчанию для запроса или отчета. Обратите внимание, что порядок сортировки по умолчанию не перезаписывается текущим или сохраненным порядком сортировки, но действует только в том случае, если текущий или последний сохраненный порядок сортировки удален из представления.
- Чтобы определить порядок сортировки по умолчанию для запроса, откройте его в режиме конструктора. Добавьте поля сортировки на конструктор и в строке «Сортировка» укажите нужный порядок сортировки.
- Чтобы определить порядок сортировки по умолчанию для отчета, используйте области «Группировка, сортировка и итоги» в режиме макета или конструктора. Пошаговую информацию см. в разделе «Сортировка отчета».
Чтобы отсортировать записи по умолчанию, на вкладке «Главная» в группе «Сортировка & фильтра» нажмите кнопку «Очистить все сортировки». При этом из представления удаляется текущий или последний сохраненный фильтр, что позволяет просматривать записи в стандартом порядке.