Avatar billede lbaad Nybegynder
16. august 2004 - 15:22 Der er 2 kommentarer og
1 løsning

Selecte de ældste fra en tabel

Hejsa

En lille nem én(for nogle ;))
Hvordan select'er man de ældste fra en tabel??
Jeg vil gerne finde de 5000 ældste fra en tabel.

Håber i kan hjælpe

Mvh
Lars
Avatar billede lbaad Nybegynder
16. august 2004 - 15:52 #1
Jeg har selv fundet det
select * from emp minus select * from emp where rownum<9990

Lukker spm
Avatar billede dmk Nybegynder
16. august 2004 - 15:57 #2
Det ser ikke helt godt ud...

Når du laver en select i en tabel uden order-by får du ikke data i nogen forud-defineret rækkefølge. Så du er absolut ikke sikker på, at du får sorteret de seneste 9990 rækker fra. Du kan lige så godt få sorteret de ældste fra, som er dem du gerne vil have.

Den eneste måde at få "de ældste" er ved, at du selv sætter et CreatedDate felt på, som du giver værdi når der indsættes nye rækker:

alter table emp add (CreateDate date);

create trigger Emp_AutoDate
before insert in Emp
for each row
begin
  :new.CreateDate:=sysdate;
end;
/


så vil du kunne lave din sql:


select * from emp
where rownum<5000
order by CreatedDate asc;
Avatar billede lbaad Nybegynder
17. august 2004 - 08:02 #3
OK - troede lige at jeg havde den.
Jeg skulle så ikke bruge det alligevel, men tak for svaret, desværre kan du ikke få points.
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