sql >> Database teknologi >  >> RDS >> Oracle

Sådan får du den sidste række i et Oracle en tabel

Der er ikke sådan noget som den "sidste" række i en tabel, da en Oracle-tabel ikke har noget ordensbegreb.

Men forudsat at du ville finde den sidst indsatte primærnøgle og at denne primærnøgle er et stigende tal, kan du gøre noget som dette:

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

Hvis du har den dato, som hver række blev oprettet, ville dette blive, hvis kolonnen hedder created :

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

Alternativt kan du bruge en samlet forespørgsel, for eksempel:

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

Her er en lille SQL Fiddle at demonstrere.



  1. Skinner:Ingen forbindelsespulje til ActiveRecord::Base

  2. Sikkerhedsovervejelser for MariaDB-implementeringer på Hybrid Cloud-miljø

  3. Hvordan konverterer jeg et heltal til streng som en del af en PostgreSQL-forespørgsel?

  4. Sådan opgraderes PostgreSQL10 til PostgreSQL11 med nul nedetid