Problém:
Je potřeba zobrazit záznamy z dané tabulky seřazené podle dvou sloupců.
Příklad:
Naše databáze obsahuje tabulku s názvem employee
s následujícími sloupci:id
, first_name
, last_name
a salary
.
id | křestní_jméno | last_name | plat |
---|---|---|---|
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Zelená | 2400 |
4 | Michael | Muller | 3000 |
5 | Marie | Zelená | 2400 |
Zobrazme všechny informace pro každého zaměstnance, ale seřaďme záznamy podle mzdy nejprve sestupně a poté vzestupně podle příjmení.
Řešení:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Tento dotaz vrací setříděné záznamy podle dvou sloupců:plat a last_name .
id | křestní_jméno | last_name | plat |
---|---|---|---|
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Marie | G reen | 2400 |
2 | Ada | M uller | 2400 |
Diskuse:
Pokud chcete vybrat záznamy z tabulky, ale chtěli byste je vidět seřazené podle dvou sloupců, můžete tak učinit pomocí ORDER BY
. Tato klauzule je na konci vašeho dotazu SQL.
Po ORDER BY
klíčové slovo, přidejte název sloupce, podle kterého chcete záznamy seřadit jako první (v našem příkladu plat). Poté za čárku přidejte druhý sloupec (v našem příkladu last_name
). Pořadí řazení (vzestupně nebo sestupně) můžete upravit samostatně pro každý sloupec. Chcete-li použít vzestupné (od nejnižšího k nejvyššímu) pořadí, můžete použít ASC
klíčové slovo; toto klíčové slovo je však nepovinné, protože to je výchozí pořadí, když není zadáno žádné. Pokud chcete použít sestupné pořadí, vložte DESC
klíčové slovo za příslušným sloupcem (v příkladu jsme pro salary
použili sestupné pořadí sloupec).
V našem příkladu jsme nejprve seřadili výsledek podle platu v sestupném pořadí (od vyšších platů k nižším) a poté vzestupně podle příjmení v rámci již seřazených záznamů.