sql >> Database >  >> RDS >> Database

Hoe te sorteren in SQL

Probleem:

U wilt het resultaat van een SQL-query in oplopende of aflopende volgorde sorteren.

Voorbeeld:

Onze database heeft een tabel met de naam salary_information met gegevens in de kolommen id , first_name , last_name , en monthly_earnings . We willen de werknemers sorteren op hun monthly_earnings in aflopende volgorde.

id voornaam achternaam monthly_earnings
1 Calvijn Rios 3500
2 Alan Paterson 4000
3 Kurt Evans 2300
4 Alex Watkins 5500

Oplossing:

We gebruiken een ORDER BY clausule. Hier is de vraag:

We gebruiken de functie CURRENT_DATE om de huidige datum te krijgen:

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

Hier is het resultaat van de zoekopdracht:

voornaam achternaam monthly_earnings
Alex Watkins 5500
Alan Paterson 4000
Calvijn Rios 3500
Kurt Evans 2300

Nu kunnen we zien dat Alex Watkins als eerste op de lijst staat, wat betekent dat hij het meeste geld verdient.

Discussie:

Gebruik een ORDER BY als u de gegevensset in oplopende of aflopende volgorde wilt sorteren. De syntaxis voor een ORDER BY clausule is als volgt:

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

In het bovenstaande, ASC|DESC betekent dat u ofwel het trefwoord ASC . moet kiezen (oplopend) of DESC (aflopend) om de dataset te ordenen zoals u dat wilt.

Naast sorteren op numerieke kolommen, kunt u ook sorteren op tekstkolommen. Een ORDER BY clausule zal tekstkolommen in alfabetische volgorde sorteren.

In plaats van de kolomnaam kunt u ook de positie van de kolom vanaf de linkerkant gebruiken. Dus, in ons voorbeeld, in plaats van te schrijven:

ORDER BY monthly_earnings DESC

je kunt ook schrijven:

ORDER BY 3 DESC

Als u de tabel uit het voorbeeld wilt sorteren op first_name kolom in alfabetische (oplopende) volgorde, kunt u de volgende zoekopdracht gebruiken:

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

Het is ook vermeldenswaard dat u op meerdere kolommen kunt sorteren. Dit is handig wanneer sommige waarden in een bepaalde kolom worden herhaald en u extra moet sorteren. Scheid in dit geval de kolomnamen met komma's in de ORDER BY-component.

U kunt zelfs in oplopende volgorde sorteren op de ene kolom en in aflopende volgorde op een andere. Het volgende illustreert de syntaxis van deze combinatie:

	ORDER BY Col1 ASC, Col2 DESC;
	

Als u de ASC . weglaat of DESC trefwoord, wordt standaard oplopend gesorteerd.


  1. Hoe beperk ik het aantal rijen dat wordt geretourneerd door een Oracle-query na het bestellen?

  2. Kan opgeslagen procedure 'dbo.aspnet_CheckSchemaVersion' niet vinden

  3. Vlieg hoger in de cloud met MariaDB SkySQL

  4. 911/112:een gegevensmodel voor noodoproepen