Oracle
 sql >> Database >  >> RDS >> Oracle

Query SQL per recuperare OrderID, TransactionID, Status in base allo stato della transazione che è Char

Un metodo utilizza 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() è solo un modo conveniente per assegnare un ordinamento alle stringhe. Restituisce la posizione dello stato nel primo argomento, che in questo caso è utile ai fini dell'ordinamento.