sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo usar Oracle ORDER BY y ROWNUM correctamente?

El where la declaración se ejecuta antes el order by . Entonces, su consulta deseada dice "tome la primera fila y luego ordénela por t_stamp desc ". Y eso no es lo que pretendes.

El método de subconsulta es el método adecuado para hacer esto en Oracle.

Si desea una versión que funcione en ambos servidores, puede utilizar:

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

El exterior * devolverá "1" en la última columna. Debería enumerar las columnas individualmente para evitar esto.