Nếu bạn cũng muốn đặt thứ tự sắp xếp (ASC / DESC) động, bạn có thể làm như sau:
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
với một biến l_so
chứa 1 hoặc -1 tùy theo thứ tự sắp xếp bạn muốn.