Проблем:
Трябва да покажете записи от дадена таблица, сортирани по две колони.
Пример:
Нашата база данни има таблица с име employee със следните колони:id , first_name , last_name и salary .
| id | first_name | фамилно_име | заплата |
|---|---|---|---|
| 1 | Лиза | Улман | 3000 |
| 2 | Ада | Мюлер | 2400 |
| 3 | Томас | Зелено | 2400 |
| 4 | Майкъл | Мюлер | 3000 |
| 5 | Мери | Зелено | 2400 |
Нека покажем цялата информация за всеки служител, но първо да сортираме записите според заплатата в низходящ ред, а след това по фамилия във възходящ ред.
Решение:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Тази заявка връща сортирани записи според две колони:заплата и фамилно_име .
| id | first_name | фамилно_име | заплата |
|---|---|---|---|
| 4 | Майкъл | М uller | 3000 |
| 1 | Лиза | U лман | 3000 |
| 3 | Томас | G реен | 2400 |
| 5 | Мери | G реен | 2400 |
| 2 | Ада | М uller | 2400 |
Дискусия:
Ако искате да изберете записи от таблица, но искате да ги видите сортирани по две колони, можете да го направите с ORDER BY . Тази клауза идва в края на вашата SQL заявка.
След ORDER BY ключова дума, добавете името на колоната, по която искате първо да сортирате записи (в нашия пример заплата). След това след запетая добавете втората колона (в нашия пример last_name ). Можете да промените реда на сортиране (възходящ или низходящ) отделно за всяка колона. Ако искате да използвате възходящ (от нисък към висок) ред, можете да използвате ASC ключова дума; тази ключова дума обаче не е задължителна, тъй като това е редът по подразбиране, когато не е посочена нито една. Ако искате да използвате низходящ ред, поставете DESC ключова дума след съответната колона (в примера използвахме низходящ ред за salary колона).
В нашия пример първо сортирахме резултата по заплата в низходящ ред (по-високи заплати към по-ниски), а след това по фамилия във възходящ ред в рамките на тези вече сортирани записи.