Você deseja gerar um valor apenas para classificar com base na condição desejada.
ORDER BY fruit_id desc,
a.rev_date desc,
case when fruit_id = primary_fruit_id then 0 else 1 end
Você não mostra o campo de data em suas saídas de exemplo, então não sei como essa data segmenta a saída. Eu estou supondo que a data é mais relevante do que o "mesmo valor de chave", mas você pode colocá-lo onde quer que você tenha o efeito desejado.
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