Bei einem Kundenprojekt gab es die Anforderung nach einem Datum zu sortieren. Zuerst sollen die Reihen angezeigt werden, bei denen die Datumsspalte nicht belegt, also NULL ist. Dann absteigend nach dem Datum. Leider unterstützt der SQL-Server NULLS FIRST nicht, aber es gibt dennoch eine Lösung.

…order by isnull(pc.d_datehistorical, getdate()) desc, pc.d_datehistorical desc

isNull() liefert den Defaultwert der nach dem Komma angegeben ist, wenn der erste Parameter den Wert null hat. Getdate() liefert das aktuelle Datum. Da die Spalte nach der sortiert werden soll nur Daten in der Vergangenheit enthält, werden so die null-Reihen nach oben sortiert. Nach dieser Sortierung kommt dann die absteigende Sortierung nach der Datumsspalte zur Anwendung und die Anforderung ist wie gewünscht umgesetzt.