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

Cómo obtener la última fila de una tabla de Oracle

No existe la "última" fila en una tabla, ya que una tabla de Oracle no tiene concepto de orden.

Sin embargo, suponiendo que desea encontrar la última clave principal insertada y que esta clave principal es un número creciente, podría hacer algo como esto:

select *
  from ( select a.*, max(pk) over () as max_pk
           from my_table a
                )
 where pk = max_pk

Si tiene la fecha en que se creó cada fila, esto se convertiría, si la columna se llama created :

select *
  from ( select a.*, max(created) over () as max_created
           from my_table a
                )
 where created = max_created

Alternativamente, puede usar una consulta agregada, por ejemplo:

select *
  from my_table
 where pk = ( select max(pk) from my_table )

Aquí hay un pequeño SQL Fiddle para demostrar.