Сортування даних в sql (order by)

вивчаємо SQL

При вибірці даних буває важливо отримати їх в певному впорядкованому вигляді. Сортування може бути виконана по будь-яких полях з будь-яким типом даних. Це може бути сортування за зростанням або зменшенням для числових полів. Для символьних (текстових) полів це може бути сортування в алфавітному порядку, хоча по суті, вона так само є сортуванням за зростанням або спаданням. Вона так само може бути виконана в будь-яких напрямках - від А, до Я, і навпаки від Я, до А.

Суть процесу сортування полягає до приведення послідовності до певного порядку. Детальніше про сортування можна дізнатися в статті "Алгоритми сортування" Наприклад, сортування довільної числової послідовності по зростанню:

повинна привести до впорядкованої послідовності:

Аналогічно, при сортуванні по зростанню строкових значень:

Іванов Іван, Петров Петро, ​​Іванов Андрій

результат повинен бути:

Іванов Андрій, Іванов Іван, Петров Петро

Тут рядок "Іванов Андрій" перейшла в початок, так як порівняння рядків виробляється посимвольний. Обидві рядки починаються однакових символів "Іванов". Так як символ "А" в слові "Андрій" йде раніше в алфавіті, ніж символ "І" в слові "Іван", то цей рядок буде поставлена ​​раніше.

Сортування в запиті SQL

Для виконання сортування в рядок запиту потрібно додати команду ORDER BY. Після цієї команди вказується поле, по якому проводиться сортування.

Для прикладів використовуємо таблицю товарів goods:

num
(номер товару)

Так само можна виконати сортування для будь-якого з полів таблиці.

Напрямок сортування

За замовчуванням, команда ORDER BY виконує сортування по зростанню. Щоб керувати напрямком сортування вручну, після імені стовпчика вказується ключове слово ASC (по зростанню) або DESC (по спадаючій). Таким чином, щоб вивести нашу таблицю в порядку убування цін, потрібно задати запит так:

SELECT * FROM goods ORDER BY price DESC

Сортування по зростанню ціни буде:

SELECT * FROM goods ORDER BY price ASC

Сортування по декількох полях

SQL допускає сортування відразу по декількох полях. Для цього після команди ORDER BY необхідні поля вказуються через кому. Порядок в результаті запиту буде налаштовуватися в тій же черговості, в якій вказані поля сортування.