Sortierung nach 2 Datumsfelder :(

MasterEvil

Erfahrenes Mitglied
Hallo, ich habe ein dummes Problem.

Ich habe eine Tabelle mit 2 Datumsfelder, es ist je Datensatz nur ein Feld ausgefüllt das andere ist NULL.

Gibt es eine Möglichkeit die Tabelle nach datum zu sortieren, so dass nur jeweils das ausgefüllte Datumsfeld ins Kriterium mit einfließt?

[EDIT]
Fast vergessen, ich arbeite mit PostgreSQL 8.1


Bsp:

Tabelle:
1 | NULL | 01.01.1900
2 | NULL | 03.01.1900
3 | 02.01.1900 | NULL

Suchergebnis:
1 | 3 | 2
 
Hi!

Komme von MySql, weiß deshalb nicht, ob folgendes für Dich völliger Blödsinn ist:
man könnte das jeweilige Datum in einer neuen "Spalte" eintragen und nach dieser sortieren:
SQL:
SELECT *, IF (datum1 IS NOT NULL , datum1, datum2) AS datum FROM tabelle 
ORDER BY datum

...wenigstens ein brauchbarer Ansatz?! :rolleyes: ;)

Liebe Grüße,
Mark.
 
Die IF Methode gibt es so in diesem Kontext leider nicht.
Aber vieleicht könnte ich ja sone ähnliche Funktion nachschreiben, danke auf jedenfall schonmal für deine Hilfe :)
 
Also nochmal besten Dank für deine Hilfe, habs jetzt folgend hinbekommen :)

SQL:
SELECT *, CASE WHEN date1 IS NOT NULL THEN date1 ELSE date2 END AS sortdate FROM tabelle ORDER BY sortdate
 
Hallo,

wesentlich angenehmer zu Lesen ist allerdings COALESCE:
SQL:
SELECT *, COALESCE(date1, date2) AS sortdate FROM tabelle ORDER BY sortdate

Klappt sowohl mit PostgreSQL als auch mit MySQL :)

Grüße,
Matthias
 
Hi Matthias!

...und ich wunder mich immer, warum meine MySql-Statements so lang sind :rolleyes:
Danke für diese Lehrstunde und den indirekten Hinweis, daß ich häufiger ins Funktions-Manual schauen sollte ;) :)

Liebe Grüße,
Mark.
 
Zurück