Chcesz wygenerować wartość tylko do sortowania na podstawie żądanego warunku.
ORDER BY fruit_id desc,
a.rev_date desc,
case when fruit_id = primary_fruit_id then 0 else 1 end
Nie pokazujesz pola daty w przykładowych danych wyjściowych, więc nie wiem, jak ta data dzieli dane wyjściowe. Domyślam się, że data jest bardziej odpowiednia niż „ta sama wartość klucza”, ale możesz umieścić ją w dowolnym miejscu, aby uzyskać pożądany efekt.
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