Sie sollten in der Lage sein:
update t
set date1 = greatest(date1, coalesce(date2, date1), coalesce(date3, date1), coalesce(date4, date1))
where date1 < greatest(date1, coalesce(date2, date1), coalesce(date3, date1), coalesce(date4, date1));
In Ihren Daten date1 scheint niemals NULL zu sein .