Vuoi generare un valore solo per ordinare in base alla condizione desiderata.
ORDER BY fruit_id desc,
a.rev_date desc,
case when fruit_id = primary_fruit_id then 0 else 1 end
Non mostri il campo della data nei tuoi output di esempio, quindi non so come quella data segmenta l'output. Immagino che la data sia più rilevante dello "stesso valore chiave", ma puoi posizionarla ovunque ti dia l'effetto che desideri.
ORDER BY fruit_id desc,
case when fruit_id = primary_fruit_id then 0 else 1 end,
a.rev_date desc
ORDER BY case when fruit_id = primary_fruit_id then 0 else 1 end,
fruit_id desc,
a.rev_date desc