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í.