Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment obtenir la dernière ligne d'une table Oracle

Il n'y a pas de "dernière" ligne dans une table, car une table Oracle n'a pas de concept d'ordre.

Cependant, en supposant que vous vouliez trouver la dernière clé primaire insérée et que cette clé primaire est un nombre qui s'incrémente, vous pouvez faire quelque chose comme ceci :

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

Si vous avez la date à laquelle chaque ligne a été créée, cela deviendrait, si la colonne est nommée created :

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

Vous pouvez également utiliser une requête agrégée, par exemple :

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

Voici un petit SQL Fiddle à démontrer.