sql >> Databasteknik >  >> RDS >> Oracle

SQL-fråga för att hämta OrderID, transaktions-ID, Status baserat på transaktionsstatus som är Char

En metod använder 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() är bara ett bekvämt sätt att tilldela en beställning till strängar. Den returnerar statusens position i det första argumentet, vilket är praktiskt för sorteringsändamål i det här fallet.




  1. Räkna antalet rader i 30 dagars papperskorgar

  2. Importera enstaka databas från --all-databases dump

  3. lagra bild till byte[] i Mysql med asp.net och c#

  4. Infoga ny rad med data beräknad från andra rader