Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête SQL pour récupérer OrderID, transactionID, Status basé sur le statut de la transaction qui est Char

Une méthode utilise row_number() :

select t.*
from (select t.*,
             row_number() over (partition by orderid
                                order by instr('LOW,MEDIUM,HIGH', status) as seqnum
      from transaction t
     ) t
where seqnum = 1;

instr() est juste un moyen pratique d'attribuer un ordre aux chaînes. Il renvoie la position du statut dans le premier argument, ce qui est pratique à des fins de tri dans ce cas.