Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Dynamic DESC und ASC in der Reihenfolge von

Wenn Sie auch die Sortierreihenfolge (ASC/DESC) dynamisch gestalten möchten, können Sie Folgendes tun:

SELECT ...
Order By CASE WHEN InputParam = 'PRICE' THEN l_so * OFFER_PRICE END,
         CASE WHEN InputParam = 'ENDING SOON' 
              THEN l_so * (SYSDATE - EXPIRY_DATE) END, 
         CASE WHEN InputParam = 'DISCOUNT' THEN l_so * DISC_PERCENTAGE END,
         CASE WHEN InputParam = 'SAVING' THEN l_so * SAVING END

mit einer Variablen l_so die 1 oder -1 enthält, je nach gewünschter Sortierreihenfolge.