Avatar billede mik28 Seniormester
21. februar 2011 - 15:45 Der er 5 kommentarer og
1 løsning

find den 100 sidste række.

Find den 100 sidste række i en oracle database. Altså ikke den sidste men den som kommer 100 før.
Avatar billede michael_stim Ekspert
21. februar 2011 - 15:49 #1
Det må være noget á la:

SELECT * FROM tabel WHERE rownum = 100 ORDER BY id DESC;
Avatar billede pgroen Nybegynder
21. februar 2011 - 16:26 #2
Eller snarere

SELECT * FROM (SELECT rownum rn, t.*
                FROM tabel t
            ORDER BY id DESC)
WHERE rn = 100;
Avatar billede mik28 Seniormester
22. februar 2011 - 09:28 #3
hmmmmm. Giver den mig den 100 sidste? altså hvis jeg har 10000 rækker vil jeg have række 9900
Avatar billede pgroen Nybegynder
22. februar 2011 - 10:28 #4
Hov, det jeg mente var:

SELECT *
  FROM (SELECT t.*, rownum rnum
          FROM (SELECT *
                  FROM tabel
                ORDER BY id DESC) t)
WHERE rnum = 2;


Check i øvrigt nedenstående for et godt eksempel:
http://www.oracle-base.com/articles/misc/TopNQueries.php
Avatar billede mik28 Seniormester
22. februar 2011 - 10:35 #5
okay. Mange tak for hjælpen. Læg endelig et svar
Avatar billede pgroen Nybegynder
22. februar 2011 - 10:59 #6
En ANDEN mulighed kunne være at bruge analytiske funktioner:

SELECT *
  FROM (SELECT t.*,
              RANK() OVER (ORDER BY id DESC) rnk
          FROM tabel t
        ORDER BY id DESC)
WHERE rnk = 100;

Prøv evt. at google "Oracle Analytic Functions"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester