smalldatetime
memiliki jangkauan hingga 6 Juni 2079 sehingga Anda dapat menggunakan
ORDER BY ISNULL(Next_Contact_Date, '2079-06-05T23:59:00')
Jika tidak ada catatan yang sah akan memiliki tanggal tersebut.
Jika ini bukan asumsi yang Anda suka mengandalkan opsi yang lebih kuat adalah menyortir pada dua kolom.
ORDER BY CASE WHEN Next_Contact_Date IS NULL THEN 1 ELSE 0 END, Next_Contact_Date
Kedua saran di atas tidak dapat menggunakan indeks untuk menghindari pengurutan dan memberikan rencana yang tampak serupa.
Satu kemungkinan lain jika indeks seperti itu ada adalah
SELECT 1 AS Grp, Next_Contact_Date
FROM T
WHERE Next_Contact_Date IS NOT NULL
UNION ALL
SELECT 2 AS Grp, Next_Contact_Date
FROM T
WHERE Next_Contact_Date IS NULL
ORDER BY Grp, Next_Contact_Date