sql >> Databáze >  >> RDS >> Database

Jak třídit v SQL

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


  1. Převést MySQL na SQlite

  2. #1139 - Z regulárního výrazu se vyskytla chyba 'repetition-operator operand invalid'

  3. Jarní podpora JDBC a velká datová sada

  4. Knihovna není načtena:chyba libmysqlclient.16.dylib při pokusu o spuštění „rails serveru“ v OS X 10.6 s gem mysql2