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

Como usar o Oracle ORDER BY e ROWNUM corretamente?


O where instrução é executada antes o order by . Portanto, sua consulta desejada está dizendo "pegue a primeira linha e ordene por t_stamp desc ". E não é isso que você pretende.

O método de subconsulta é o método adequado para fazer isso no Oracle.

Se você quiser uma versão que funcione em ambos os servidores, você pode usar:
select ril.*
from (select ril.*, row_number() over (order by t_stamp desc) as seqnum
      from raceway_input_labo ril
     ) ril
where seqnum = 1

O * externo retornará "1" na última coluna. Você precisaria listar as colunas individualmente para evitar isso.