Du vill generera ett värde bara att sortera på baserat på det villkor du vill ha.
ORDER BY fruit_id desc,
a.rev_date desc,
case when fruit_id = primary_fruit_id then 0 else 1 end
Du visar inte datumfältet i dina exempelutdata, så jag vet inte hur det datumet segmenterar utdata. Jag gissar att datumet är mer relevant än "samma nyckelvärde", men du kan placera det var som helst som ger dig den effekt du vill ha.
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