Problém:
Chcete seřadit výsledek SQL dotazu ve vzestupném nebo sestupném pořadí.
Příklad:
Naše databáze obsahuje tabulku s názvem salary_information
s údaji ve sloupcích id
, first_name
, last_name
a monthly_earnings
. Chceme seřadit zaměstnance podle jejich monthly_earnings
v sestupném pořadí.
id | first_name | last_name | měsíční_výdělky |
---|---|---|---|
1 | Calvin | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Řešení:
Použijeme ORDER BY
doložka. Zde je dotaz:
Použijeme funkci CURRENT_DATE
získat aktuální datum:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Zde je výsledek dotazu:
first_name | last_name | měsíční_výdělky |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvin | Rios | 3500 |
Kurt | Evans | 2300 |
Nyní vidíme, že Alex Watkins je první na seznamu, což znamená, že vydělává nejvíce peněz.
Diskuse:
Použijte ORDER BY
klauzule, pokud chcete datovou sadu seřadit vzestupně nebo sestupně. Syntaxe pro ORDER BY
klauzule je následující:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Ve výše uvedeném ASC|DESC
znamená, že byste měli zvolit buď klíčové slovo ASC
(vzestupně) nebo DESC
(sestupně) a uspořádejte datovou sadu tak, jak chcete.
Kromě řazení podle číselných sloupců můžete také třídit podle textových sloupců. ORDER BY
klauzule seřadí textové sloupce v abecedním pořadí.
Místo názvu sloupce můžete také použít pozici počítání sloupců zleva. Takže v našem příkladu místo psaní:
ORDER BY monthly_earnings DESC
můžete také napsat:
ORDER BY 3 DESC
Pokud chcete seřadit tabulku z příkladu podle first_name
sloupec v abecedním (vzestupném) pořadí, můžete použít následující dotaz:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Za zmínku také stojí, že můžete třídit podle více sloupců. To je užitečné, když se některé hodnoty v daném sloupci opakují a potřebujete další řazení. V tomto případě oddělte názvy sloupců čárkami v klauzuli ORDER BY.
Můžete dokonce řadit vzestupně podle jednoho sloupce a sestupně podle jiného. Následující text ilustruje syntaxi této kombinace:
ORDER BY Col1 ASC, Col2 DESC;
Pokud vynecháte ASC
nebo DESC
klíčové slovo, ve výchozím nastavení se provádí vzestupné řazení.