SQLLab
Теория· 5 мин· 10 XP

ASC и DESC

Зачем это нужно

Одних и тех же данных бывают два вида отчётов: «топ самых дорогих» и «самые дешёвые». DESC и ASC управляют направлением сортировки.

Аналогия с Excel

В Excel кнопки «А→Я» и «Я→А» на панели инструментов. В SQL — ASC и DESC после имени колонки в ORDER BY.

Синтаксис

sql
ORDER BY колонка ASC   -- по возрастанию (A→Я, 1→9, старые→новые)
ORDER BY колонка DESC  -- по убыванию   (Я→А, 9→1, новые→старые)

ASC — значение по умолчанию. ORDER BY price и ORDER BY price ASC — одно и то же. Но писать ASC явно — хорошая практика.

Как сортируются разные типы данных

Числа: ASC — от меньшего к большему (150 → 89990). Текст: ASC — по алфавиту (А → Я, a → z). Даты: ASC — от более ранней к более поздней (2024-01-01 → 2024-03-12).

sql
-- Дорогие товары первыми
SELECT name, price FROM products ORDER BY price DESC;

-- Алфавитный каталог
SELECT name FROM products ORDER BY name ASC;

-- Новинки сначала
SELECT name, created_at FROM products ORDER BY created_at DESC;

Частые ошибки

DESC пишут перед колонкой — ORDER BY DESC price — ошибка синтаксиса. Направление указывается после имени колонки: ORDER BY price DESC.

Забывают DESC для «топ-N» — ORDER BY price LIMIT 5 без DESC вернёт 5 самых дешёвых, а не дорогих. Для топа нужен DESC.

Запомни

ASC — от меньшего к большему (по умолчанию). DESC — от большего к меньшему. Направление пишется после имени колонки.


Мини-практика

Напиши два запроса:

  1. Выведи name, price — самые дорогие товары первыми.
  2. Выведи name, created_at — самые свежие поступления первыми.
Ответы
sql
-- 1. Дорогие первыми
SELECT name, price
FROM products
ORDER BY price DESC;

-- 2. Свежие первыми
SELECT name, created_at
FROM products
ORDER BY created_at DESC;

Прочитайте урок до конца — прогресс засчитается автоматически