Database
 sql >> Baza danych >  >> RDS >> Database

Jak sortować w SQL

Problem:

Chcesz posortować wyniki zapytania SQL w kolejności rosnącej lub malejącej.

Przykład:

Nasza baza danych zawiera tabelę o nazwie salary_information z danymi w kolumnach id , first_name , last_name i monthly_earnings . Chcemy posortować pracowników według ich monthly_earnings w porządku malejącym.

id imię nazwisko month_earnings
1 Kalwin Rios 3500
2 Alan Paterson 4000
3 Kurt Evans 2300
4 Alek Watkins 5500

Rozwiązanie:

Użyjemy ORDER BY klauzula. Oto zapytanie:

Użyjemy funkcji CURRENT_DATE aby uzyskać aktualną datę:

	SELECT
		first_name,
		last_name,
		monthly_earnings
	FROM salary_information
	ORDER BY monthly_earnings DESC

Oto wynik zapytania:

imię nazwisko month_earnings
Alek Watkins 5500
Alan Paterson 4000
Kalwin Rios 3500
Kurt Evans 2300

Teraz widzimy, że Alex Watkins jest pierwszy na liście, co oznacza, że ​​zarabia najwięcej pieniędzy.

Dyskusja:

Użyj ORDER BY klauzulę, jeśli chcesz posortować zbiór danych w kolejności rosnącej lub malejącej. Składnia ORDER BY klauzula jest następująca:

SELECT col1, col2, …
FROM table
ORDER BY col1, col2, … ASC|DESC;

W powyższym, ASC|DESC oznacza, że ​​należy wybrać słowo kluczowe ASC (rosnąco) lub DESC (malejąco), aby uporządkować zestaw danych tak, jak chcesz.

Oprócz sortowania według kolumn liczbowych możesz także sortować według kolumn tekstowych. ORDER BY klauzula posortuje kolumny tekstu w kolejności alfabetycznej.

Zamiast nazwy kolumny możesz również użyć pozycji liczenia kolumny od lewej. Tak więc w naszym przykładzie zamiast pisać:

ORDER BY monthly_earnings DESC

możesz też napisać:

ORDER BY 3 DESC

Jeśli chcesz posortować tabelę z przykładu według first_name kolumna w kolejności alfabetycznej (rosnąco), możesz użyć następującego zapytania:

SELECT
	first_name,
	last_name,
	monthly_earnings
FROM salary_information
ORDER BY first_name ASC

Warto również zauważyć, że możesz sortować według wielu kolumn. Jest to pomocne, gdy niektóre wartości w danej kolumnie się powtarzają i potrzebujesz dodatkowego sortowania. W takim przypadku oddziel nazwy kolumn przecinkami w klauzuli ORDER BY.

Możesz nawet sortować rosnąco według jednej kolumny i malejąco według drugiej. Poniżej zilustrowano składnię tej kombinacji:

	ORDER BY Col1 ASC, Col2 DESC;
	

Jeśli pominiesz ASC lub DESC słowo kluczowe, sortowanie rosnąco jest domyślnie wykonywane.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kilka szybkich rzeczy na temat opinii PASS

  2. Jak używać COUNT w SQL?

  3. Optymalizacja nakładających się zapytań Część 1:Wprowadzenie i ulepszone rozwiązanie T-SQL

  4. SQL między operatorem

  5. Zatrzymywanie błędów serwera połączonego