ВГОРУ

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

В майбутньому нам може знадобитися посортувати нашу вибірку - в алфавітному порядку для тексту чи по зростанню/спаданню - для цифрових значень. Для таких цілей в 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 застосовується лише для одного стовпця, тому при потребі його потрібно прописувати після кожного поля, яке приймає участь у сортуванні.