Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consulta SQL para buscar OrderID, transactionID, Status com base no status da transação que é Char


Um método usa 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() é apenas uma maneira conveniente de atribuir uma ordenação a strings. Ele retorna a posição do status no primeiro argumento, o que é conveniente para fins de classificação neste caso.