Stell dir vor, du sollst eine Liste mit MitarbeiterInnen ausgeben, die nach Nachnamen alphabetisch sortiert sein soll. Das ist ja kein Problem, ein ORDER BY nachname
würde hier schon reichen. Nur der Chef ist so eitel, dass er natürlich an der Spitze der Liste stehen will.
Dafür zeige ich dir hier eine, oder besser gesagt zwei Lösungen.
Ausgangslage
Wir haben eine unsortierte Tabelle in der die Namen der MitarbeiterInnen gespeichert sind. Der erste Schritt die Namen einfach mit einem
1 | ORDER BY nachname |
zu sortieren ist dir vermutlich auch bekannt.


Die Person an der Spitze
Jetzt nehme ich einmal an, dass die Fr. Maria Meier die Chefin ist, die ich an der ersten Stelle der Liste positioniert haben will. Dafür habe ich grundsätzlich 2 Möglichkeiten.
Möglichkeit 1 ORDER BY erweitern
Meine erste Möglichkeit eine Tabelle mit Fr. Meier an erster Stelle und danach alle Personen in alphabetischer Reihenfolge zu bekommen besteht darin, dass ich den ORDER BY Teil in MySQL um ein IF erweitere, in PostgreSQL muss ich dafür ein CASE verwenden:
MySQL / MariaDB
[SQL]SELECT * FROM testadressen
ORDER BY IF(nachname=’Meier‘,0,1),nachname;[/SQL]
PostgreSQL
1 2 3 4 5 | SELECT * FROM testadressen ORDER BY CASE WHEN nachname='Meier' THEN 0 ELSE 1 END, nachname; |
In beiden Fällen erzeugen wir eine ‚virtuelle‘ Spalte, die mit ‚0‘ und ‚1‘ befüllt wird und nach der danach sortiert wird und als 2. Suchkriterium gilt nach wie vor unsere Spalte ’nachname‘.

Natürlich kann die Bedingung im IF – Statement noch erweitert werden. Ich habe im Beispiel zwei Personen mit dem Nachnamen Huber und ich möchte die Eva Huber an die erste Stelle bringen, also schreibe ich:
[SQL]SELECT * FROM testadressen
ORDER BY IF(nachname=’Huber‘ AND vorname=’Eva‘,0,1), nachname;[/SQL]

2. Möglichkeit die Sortierung von Daten zu beeinflussen
Als 2. Möglichkeit die Sortierung einer Datenbanktabelle zu beeinflussen habe ich noch die Möglichkeit eine eigene Spalte in der Tabelle anzulegen, die einzig und alleine der Sortierung dient.

Der Vorteil einer eigenen Spalte zur Sortierung liegt darin, dass ich mir damit beliebige Hierachien zu Sortierung aufbauen kann, die sich auch dann nicht ändern, wenn andere Daten wie z.B. der Name einer Person geändert wird.
we-love-webdesign
März 28, 2018 at 10:51amDanke für die super Anleitung!