Vinzenz Mai: Sortierung

Beitrag lesen

Hallo Dominik,

Gibt es eine Möglichkeit, SQL über zwei Spalten gleichzeitig sortieren zu lassen?

ja selbstverständlich, siehe Marcus.

SELECT * FROM persons WHERE person_birth LIKE '%-01-%' OR person_death LIKE '%-01-%' ORDER BY SUBSTRING(person_birth,6) ASC

Die Datenbank-Felder "person_birth" und "person_death" sind jeweils im Datumsformat,

Was verstehst Du unter "Datumsformat"? Ist der Datentyp der Spalte einer der Datumstypen, z.B. DATETIME oder DATE?

und ich möchte alle Datensätze, bei denen eines von beiden im Januar liegt, sortiert nach Tagen, nicht nach Jahren, deshalb der Substring.

Warum SUBSTRING(), wenn es Datumsfunktionen gibt, die z.B. den Monat herausfiltern können. Welche es gibt, hängt von Deinem Datenbankmanagementsystem ab. MONTH() anzuwenden - so vorhanden - ist meiner Meinung nach die bessere und intuitivere Idee.

Und zwar eben so sortiert, daß die jeweils andere, nicht im Januar liegende Spalte ignoriert wird und quasi eine virtuelle zusammengefasste Spalte sortiert wird.
Ist das irgendwie innerhalb eines SQL-Statements möglich,

Prinzipiell ja, da SQL auch ein IF-Statement bietet. Mittels dieser kannst Du eine solche Sortierspalte erstellen. Du musst Deine Aufgabenstellung noch ein wenig präzisieren. Welche Reihenfolge gilt, wenn beide Datumsangaben in den Januar fallen, welche Angabe hat in diesem Fall Priorität.

Freundliche Grüße

Vinzenz