SQL Tabelle über zwei Spalten sortieren mit IF-Anweisung in Sortierung

In diesem Beispiel gibt es eine Tabelle, die eine Spalte ’start‘ und eine Spalte ‚end‘ hat. Nun soll nach ‚end‘ sortiert werden und wenn ‚end‘ einen leeren Wert hat, soll die Spalte ’start‘ in die Sortierung einspringen.

Die mySQL Anweisung dazu lautet:

 SELECT *, (CASE WHEN `end` NOT LIKE '0000-00-00' THEN `end` ELSE `start` END) as `sort` FROM `test_tbl` ORDER BY `sort` 

Nach dem ‚*, ‚ steht die CASE Anweisung, die den Inhalt ‚end‘ zurückgibt wenn der Inhalt von ‚end‘ gültig ist (Hier: Nicht ‚0000-00-00′). Wenn ungültig, dann wird der Inhalt vom Feld ’start‘ zurück gegeben. Das ganze Ergebnis wird per as als das neue Feld ’sort‘ gespeichert. Am Schluss der SQL Anweisung, wird mit ORDER BY nach dem Inhalt vom neuen Feld ’sort‘ sortiert.

Die Tabelle ‚test_tbl‘ ist wie folgt aufgebaut:

sql_table_content

Das Ergebnis der SQL Anweisung:

sql_result_order_by

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*
*
*