Kleines Nachschlagewerk Informatik
Ergebnisse ordnen
Worum geht es?
Meist möchte man Ergebnisse geordnet haben: Wer verdient am meisten, wer ist am schnellsten usw. Hier wird gezeigt, wie die Ausgaben geordnet werden.
Struktur
Die Struktur einer Abfrage ist:

      GIB Spalten VON Tabellen GEORDNET NACH Spalte
            
bzw. in SQL:

      SELECT Spalten FROM Tabellen ODER BY Spalte
            
Aufsteigend (asc), absteigend (desc) sortiert
Möchte man aus der Relation Mitarbeiter alle Personen auswählen, diese aber nach ihrem Gehalt sortieren, schreibt man:

      SELECT Vorname, Nachname, Gehalt FROM Mitarbeiter ORDER BY Gehalt
            
Diese Ausgabe liefert die Personen nach Gehalt aufsteigend (asc), was die Voreinstellung ist. Möchte man mit dem größten Gehalt beginnen, sortiert man absteigend (desc).

      SELECT Vorname, Nachname, Gehalt FROM Mitarbeiter ORDER BY Gehalt desc
            
Mehrfache Ordnung
Oft passiert es, dass Ergebnisse nach zwei oder mehr Kriterien geordnet werden sollen. Das passiert, wenn das erste Ordnungskriterium gleiche Werte liefert. Wie soll man diese Ergebnisse anordnen? Ein zweites Kriterium kann angegeben werden.

Z.B. könnte man Fussballmannschaften zuerst nach Punkten, dann nach Tordifferenz sortieren. In diesem Fall gibt man die Kriterien in gewünschter Reihenfolge durch Komma getrennt an.

      SELECT Mannschaft FROM Liga ODER BY Punkte desc, Differenz desc
            
Nummern statt Spaltennamen
Üblicherweise gibt man die Spaltennamen beim Ordnen an. Dies ist auch lesbarer. Allerdings kann man Spalten auch als Ergebnis einer Rechnung definieren und ihnen kein Alias zuordnen. Wie soll man diese dann für die Ordnung auswählen? Hier hilft die Angabe der Spaltennnummer (die immer möglich ist).

In der Relation Mitarbeiter steht auch die Wochenarbeitszeit. Es soll nun nach Stundenlohn geordnet werden.

      SELECT Nachname, Vorname, Gehalt / (Wochenstunden * 4) FROM Mitarbeiter ORDER BY 3 desc