ВВЕРХ

SQL-Урок 3. Сортировка данных (ORDER BY)

YouLibreCalc for Excel logo

В будущем нам может понадобиться рассортировать нашу выборку – в алфавитном порядке для текста или по возрастанию/убыванию – для цифровых значений. Для таких целей в SQL имеется специальный оператор ORDER BY.

SQL оператр ORDER BY может производить сортировку как от меньшего к большему, то есть по возрастанию, так и в обратном порядке - от большего к меньшему.


1. Сортировка выбранных данных

Давайте всю нашу таблицу рассортируем по сумме реализации продукции, а именно по столбцу Amount.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount

Видим, что запрос рассортировал записи по росту в поле Amount. Обязательно нужно соблюдать последовательность расположения операторов, то есть оператор ORDER BY должен идти в самом конце запроса. В противном случае будет получено сообщение об ошибке.

Также, особенностью оператора ORDER BY является то, что он может сортировать данные по полю, которого мы не выбирали в запросе, то есть достаточно, чтобы оно вообще было в БД.

2. Сортировка по нескольким полям

Теперь посортируем наш пример дополнительно по еще одному полю. Пусть это будет поле City, отображающее место реализации продукции.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount, City

Очередность сортировки будет зависеть от порядка расположения полей в запросе. То есть, в нашем случае сначала данные будут рассортированы по колонке Amount, а затем по City.

3. Направление сортировки

Несмотря на то, что по умолчанию оператор ORDER BY сортирует по возрастанию, мы можем также прописать сортировку значений по убыванию. Для этого в конце каждого поля проставляем оператор DESC (являющийся сокращением от слова DESCENDING).

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount DESC, City

В данном примере, значения в поле Amount были рассортированы по убыванию, а в поле City – по возрастанию. Оператор DESC применяется только для одного столбца, поэтому при необходимости его нужно прописывать после каждого поля, принимающего участие в сортировке.