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

Como obter a última linha de uma tabela Oracle


Não existe a "última" linha em uma tabela, pois uma tabela Oracle não tem conceito de ordem.

No entanto, supondo que você queira encontrar a última chave primária inserida e que esta chave primária é um número de incremento, você poderia fazer algo assim:
select *
  from ( select a.*, max(pk) over () as max_pk
           from my_table a
                )
 where pk = max_pk

Se você tiver a data em que cada linha foi criada, isso se tornará, se a coluna for nomeada created :
select *
  from ( select a.*, max(created) over () as max_created
           from my_table a
                )
 where created = max_created

Como alternativa, você pode usar uma consulta agregada, por exemplo:
select *
  from my_table
 where pk = ( select max(pk) from my_table )

Aqui está um pequeno SQL Fiddle para demonstrar.