ASC в Oracle SQL — как управлять направлением сортировки данных

🟢 ASC в Oracle SQL. Введение

ASC в Oracle SQL означает сортировку по возрастанию. Оно используется в выражении ORDER BY, чтобы явно указать порядок сортировки. По умолчанию Oracle сортирует по возрастанию, но ASC помогает сделать запрос читаемым и понятным. Его противоположный оператор DESC наоборот, запускает сортировку по убыванию.


🔤 Написание

sql
SELECT ... FROM ... ORDER BY столбец ASC;

🔹 ASC — от слова ascending (по возрастанию)


🔄 Где часто используется

  • В отчётах и выборках, где важен порядок

  • При построении страниц с пагинацией

  • Для сортировки чисел, строк, дат

  • Вместе с оконными функциями

  • В подзапросах для ограничения ROWNUM, FETCH, TOP N


🧪 10 Примеров использования ASC

1️⃣ Сортировка по возрастанию зарплаты

sql
SELECT first_name, salary
FROM employees
ORDER BY salary ASC;

Сначала идут сотрудники с самой низкой зарплатой.


2️⃣ Сортировка по имени в алфавитном порядке

sql
SELECT first_name, last_name
FROM employees
ORDER BY last_name ASC;

Полезно для справочников, списков клиентов и т.д.


3️⃣ Сортировка по дате найма — от старых к новым

sql
SELECT first_name, hire_date
FROM employees
ORDER BY hire_date ASC;

4️⃣ АСК с несколькими столбцами

sql
SELECT department_id, last_name, salary
FROM employees
ORDER BY department_id ASC, salary ASC;

Сначала сортировка по отделу, потом по зарплате в пределах отдела.


5️⃣ ASC в подзапросе с FETCH FIRST

sql
SELECT *
FROM (
SELECT * FROM employees ORDER BY salary ASC
)
FETCH FIRST 5 ROWS ONLY;

Получаем 5 самых низкооплачиваемых сотрудников.


6️⃣ ASC с оконной функцией ROW_NUMBER

sql
SELECT first_name, salary,
ROW_NUMBER() OVER (ORDER BY salary ASC) AS row_num
FROM employees;

Нумерация по порядку зарплаты.


7️⃣ ASC и NULLS FIRST

sql
SELECT first_name, commission_pct
FROM employees
ORDER BY commission_pct ASC NULLS FIRST;

Пустые значения будут в начале списка.


8️⃣ ASC для дат с группировкой

sql
SELECT TO_CHAR(hire_date, 'YYYY-MM') AS month_hired, COUNT(*)
FROM employees
GROUP BY TO_CHAR(hire_date, 'YYYY-MM')
ORDER BY month_hired ASC;

Показываем количество сотрудников по месяцам в хронологическом порядке.


9️⃣ ASC с CASE для произвольной сортировки

sql
SELECT first_name, job_id
FROM employees
ORDER BY CASE job_id
WHEN 'IT_PROG' THEN 1
WHEN 'SA_REP' THEN 2
ELSE 3
END ASC;

Сортировка по приоритету значений.


🔟 ASC в представлении VIEW

sql
CREATE OR REPLACE VIEW emp_sorted AS
SELECT * FROM employees ORDER BY hire_date ASC;

Создаём представление уже отсортированным.


🧩 Заключение

Оператор ASC — простой, но важный инструмент для управления порядком вывода данных. Он делает запросы более понятными и позволяет явно задать сортировку, особенно в сложных конструкциях и отчётах.

💡 Помни:

  • По умолчанию ORDER BY = ASC

  • Лучше всегда указывать явно для читаемости

  • Часто используется с DESC, NULLS FIRST/LAST, оконными функциями и подзапросами


🔜 Следующая статья:

ANALYZE в Oracle SQL — как собирать статистику и улучшать план выполнения запросов


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии