Gunakan COALESCE
SELECT id,
GREATEST(date1,
COALESCE(date2, 0),
COALESCE(date3, 0)) as datemax
FROM mytable
Pembaruan:Jawaban ini sebelumnya menggunakan IFNULL
yang berfungsi, tetapi seperti yang ditunjukkan Mike Chamberlain di komentar, COALESCE
sebenarnya adalah metode yang disukai.