Du kan prøve ORDER BY (done asc, aux desc)
hvor aux beregnes med en CASE
for at give enten prioritet eller dato baseret på værdien af done
(du skal muligvis caste dem til den samme type for at passe ind i det samme udtryk, f.eks. cast datoen til et passende heltals dagtal).
For eksempel:
SELECT * FROM tab
ORDER BY done desc,
case done
when 0 then prio
else to_days(thedate)
end desc;