Database
 sql >> Datenbank >  >> RDS >> Database

So sortieren Sie in SQL

Problem:

Sie möchten das Ergebnis einer SQL-Abfrage aufsteigend oder absteigend sortieren.

Beispiel:

Unsere Datenbank hat eine Tabelle namens salary_information mit Daten in den Spalten id , first_name , last_name und monthly_earnings . Wir möchten die Mitarbeiter nach ihrem monthly_earnings sortieren in absteigender Reihenfolge.

id Vorname Nachname monatliches_Einkommen
1 Calvin Rios 3500
2 Alan Paterson 4000
3 Kurt Evans 2300
4 Alex Watkins 5500

Lösung:

Wir verwenden einen ORDER BY Klausel. Hier ist die Abfrage:

Wir verwenden die Funktion CURRENT_DATE um das aktuelle Datum zu erhalten:

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

Hier ist das Ergebnis der Abfrage:

Vorname Nachname monatliches_Einkommen
Alex Watkins 5500
Alan Paterson 4000
Calvin Rios 3500
Kurt Evans 2300

Jetzt können wir sehen, dass Alex Watkins an erster Stelle auf der Liste steht, was bedeutet, dass er das meiste Geld verdient.

Diskussion:

Verwenden Sie einen ORDER BY -Klausel, wenn Sie das Dataset in aufsteigender oder absteigender Reihenfolge sortieren möchten. Die Syntax für ein ORDER BY Klausel lautet wie folgt:

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

Oben ASC|DESC bedeutet, dass Sie entweder das Schlüsselwort ASC wählen sollten (aufsteigend) oder DESC (absteigend), um den Datensatz nach Ihren Wünschen anzuordnen.

Neben der Sortierung nach numerischen Spalten können Sie auch nach Textspalten sortieren. Ein ORDER BY -Klausel sortiert Textspalten in alphabetischer Reihenfolge.

Anstelle des Spaltennamens können Sie auch die Position der Spalte von links gezählt verwenden. Schreiben Sie also in unserem Beispiel statt:

ORDER BY monthly_earnings DESC

Sie können auch schreiben:

ORDER BY 3 DESC

Wenn Sie die Tabelle aus dem Beispiel nach first_name sortieren möchten Spalte in alphabetischer (aufsteigender) Reihenfolge, können Sie die folgende Abfrage verwenden:

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

Es ist auch erwähnenswert, dass Sie nach mehreren Spalten sortieren können. Dies ist hilfreich, wenn sich einige Werte in einer bestimmten Spalte wiederholen und Sie eine zusätzliche Sortierung benötigen. Trennen Sie in diesem Fall die Spaltennamen in der ORDER BY-Klausel durch Kommas.

Sie können sogar nach einer Spalte aufsteigend und nach einer anderen absteigend sortieren. Das Folgende veranschaulicht die Syntax dieser Kombination:

	ORDER BY Col1 ASC, Col2 DESC;
	

Wenn Sie den ASC weglassen oder DESC Schlüsselwort wird standardmäßig eine aufsteigende Sortierung durchgeführt.