Utilisez COALESCE
SELECT id,
GREATEST(date1,
COALESCE(date2, 0),
COALESCE(date3, 0)) as datemax
FROM mytable
Mise à jour :Cette réponse utilisait auparavant IFNULL
qui fonctionne, mais comme Mike Chamberlain l'a souligné dans les commentaires, COALESCE
est en fait la méthode préférée.