Проблем:
Искате да покажете записи от таблица в азбучен или обратен на азбучен ред според дадена колона.
Пример:
Нашата база данни има таблица с име клиент. Таблицата с клиенти съдържа данни в колоните id, first_name и last_name.
id | first_name | фамилно_име |
---|---|---|
1 | Сюзън | Томас |
2 | Джон | Майкъл |
3 | Том | Мюлер |
Нека покажем информацията за всеки клиент, сортирана във възходящ ред по фамилното му име.
Решение:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name ASC;
Тази заявка връща сортирани по азбучен ред записи:
id | first_name | фамилно_име |
---|---|---|
2 | Джон | Майкъл |
3 | Том | Мюлер |
1 | Сюзън | Томас |
Дискусия:
Ако искате да изберете записи от таблица, но искате да ги видите сортирани според дадена колона, можете просто да използвате ORDER BY
клауза в края на SELECT
изявление. Няма значение колко сложна или дълга е вашата SQL заявка—ORDER BY
винаги трябва да е в края на командата.
След ORDER BY
ключова дума, вие назовавате колоната, по която трябва да се сортират записите. В нашата заявка сортираме по фамилното име на клиента.
или
По подразбиране ORDER BY
без допълнителни сортировки на спецификатор във възходящ ред (еквивалентно на използването на ASC
ключова дума изрично). Както вероятно се досещате, ASC
означава "възходящо". Ако искате да сортирате в низходящ ред, опростете, посочете DESC
ключова дума след името на колоната.
Заявката по-долу е подобна на предишната, но връща списък с клиенти, сортирани в низходящ ред по тяхното фамилно име:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name DESC;
id | first_name | фамилно_име |
---|---|---|
1 | Сюзън | Томас |
3 | Том | Мюлер |
2 | Джон | Майкъл |