MSSQL nach zwei Spalten sortieren, wie?

mmkeule

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem mit einer Sortierung.

Und zwar habe ich eine Tabelle mit zwei Datumsspalten (und weiteren) wobei immer nur in einer ein Datum drin ist. Also so:

Feld1
IDDatum1Datum2
101.01.2000NULL
2NULL05.01.2000
304.01.2000NULL
4NULL02.01.2000

Nun meine Frage:

Wie kann ich jetzt mittels einem Select die Tabelle Sortieren, das beide Datumsspalten beachtet werden und die Reihenfolge richtig ist?
Also das richtige Ergebnis sollte sein nach ID: 1,4,3,2

mit der ORDER BY Datum1, Datum2 Sortierung klappt es nicht richtig da habe ich das Ergebnis (nach ID) 1,3,4,2

Ich hoffe man versteht, wie ich das meine.

Bin für jeden Vorschlag dankbar.

Vielen Dank schon mal

Gruß Markus
 
So,

nach ein bischen tüfteln bin ich selber drauf gekommen.

hier ist die Lösung falls es jemand mal brauchen kann:


Code:
Select
  id,
  Datum1,
  Datum2,
  Datum1 as Hilfsdatum
  
  FROM tbl_test
  WHERE Datum1 is not null
UNION
Select
  id,
  Datum1,
  Datum2,
  Datum2 as Hilfsdatum
  
  FROM tbl_test
  WHERE Datum2 is not null
  ORDER BY Hilfsdatum

Ich lese praktisch die ganze Tabelle zweimal mit einer zusätzlichen Hilfsspalte (Hilfsdatum). Beim ersten SELECT werden nur die Zeilen zurückgegeben bei denen Datum1 nicht NULL ist. Beim Zweiten SELECT umgekehrt. Bei jedem SELECT wird aber zusätzlich die Hilfspalte (Hilfsdatum) mit dem gewünschten Datum zusätzlich gefüllt.
So bekomme ich alle Datensätze und kann zusätzlich nach der Hilfsspalte sortieren.... Mission Erfüllt ;)

Gruß Markus
 

Neue Beiträge

Zurück