Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie verwendet man Oracle ORDER BY und ROWNUM richtig?

Das where -Anweisung vorher ausgeführt wird die order by . Ihre gewünschte Abfrage lautet also:„Nehmen Sie die erste Reihe und sortieren Sie sie dann nach t_stamp absteigen ". Und das ist nicht Ihre Absicht.

Die Subquery-Methode ist die richtige Methode dafür in Oracle.

Wenn Sie eine Version wünschen, die auf beiden Servern funktioniert, können Sie Folgendes verwenden:

select ril.*
from (select ril.*, row_number() over (order by t_stamp desc) as seqnum
      from raceway_input_labo ril
     ) ril
where seqnum = 1

Der äußere * gibt "1" in der letzten Spalte zurück. Sie müssten die Spalten einzeln auflisten, um dies zu vermeiden.