Database
 sql >> база данни >  >> RDS >> Database

Как да сортирате в SQL

Проблем:

Искате да сортирате резултата от SQL заявка във възходящ или низходящ ред.

Пример:

Нашата база данни има таблица с име salary_information с данни в колоните id , first_name , last_name и monthly_earnings . Искаме да сортираме служителите по техните monthly_earnings в низходящ ред.

id first_name фамилно_име месечни_доходи
1 Калвин Риос 3500
2 Алан Патерсън 4000
3 Кърт Евънс 2300
4 Алекс Уоткинс 5500

Решение:

Ще използваме ORDER BY клауза. Ето заявката:

Ще използваме функцията CURRENT_DATE за да получите текущата дата:

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

Ето резултата от заявката:

first_name фамилно_име месечни_доходи
Алекс Уоткинс 5500
Алан Патерсън 4000
Калвин Риос 3500
Кърт Евънс 2300

Сега можем да видим, че Алекс Уоткинс е първи в списъка, което означава, че той печели най-много пари.

Дискусия:

Използвайте ORDER BY клауза, ако искате да сортирате набора от данни във възходящ или низходящ ред. Синтаксисът за ORDER BY клаузата е както следва:

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

В горното, ASC|DESC означава, че трябва да изберете или ключовата дума ASC (възходящ) или DESC (надолу), за да подредите набора от данни по желания от вас начин.

Освен сортиране по числови колони, можете да сортирате и по текстови колони. ORDER BY клауза ще сортира текстовите колони по азбучен ред.

Вместо името на колоната, можете също да използвате позицията на колоната, която брои отляво. Така че, в нашия пример, вместо да пишете:

ORDER BY monthly_earnings DESC

можете също да напишете:

ORDER BY 3 DESC

Ако искате да сортирате таблицата от примера по first_name колона в азбучен (възходящ) ред, можете да използвате следната заявка:

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

Също така си струва да се отбележи, че можете да сортирате по няколко колони. Това е полезно, когато някои стойности в дадена колона се повтарят и имате нужда от допълнително сортиране. В този случай разделете имената на колоните със запетаи в клаузата ORDER BY.

Можете дори да сортирате във възходящ ред по една колона и в низходящ ред по друга. Следното илюстрира синтаксиса на тази комбинация:

	ORDER BY Col1 ASC, Col2 DESC;
	

Ако пропуснете ASC или DESC ключова дума, по подразбиране се извършва възходящо сортиране.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите текущата дата и час (без часова зона) в T-SQL

  2. Използване на Jenkins с Kubernetes AWS, част 3

  3. Практическа употреба на функцията SQL COALESCE

  4. Как лесно да разположите TimescaleDB

  5. Как автоматичните актуализации на статистическите данни могат да повлияят на производителността на заявката