[Oracle] bestimmten "Zeilenbereich" einer Tabelle anzeigen.

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Hier mal ein Beispiel wie man Oracle dazu verwenden kann einen bestimmten "Zeilenbereich"
einer Tabelle anzuzeigen. Dies kann man Beispielsweise dazu verwenden Daten Seitenweise bsp.
auf einer Webseite (Artikelübersicht, z.Bsp.: maximal 25 Artikel pro Seite etc.) anzuzeigen.

Code:
drop table test;
drop sequence testid;

create table test (id int, txt varchar2(30));
create sequence testid start with 1 increment by 1;

insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);
insert into test values (testid.nextval,'text' || testid.currval);

Code:
SQL> select * from test order by txt asc;

ID TXT
---------- --------------
1 text1
10 text10
11 text11
12 text12
13 text13
14 text14
15 text15
2 text2
3 text3
4 text4
5 text5
6 text6
7 text7
8 text8
9 text9

15 Zeilen ausgewõhlt.

Code:
select * from
    (
      select rownum as num, t.* from
	(
        select * from test order by txt asc
        ) t
    )
   where num between 7 and 11
   order by txt asc
/
liefert:
NUM ID TXT
---------- ---------- ---------------
7 15 text15
8 2 text2
9 3 text3
10 4 text4
11 5 text5

Gruß Tom
 
Hi Leute,

der Weg ist ja ganz ok, aber wie schaut es hier mit der Performance aus?
Zwingt der Sort im Inner die DB nicht etwas in die Knie mit steigender DS-Zahl?

Gruss
LosLollos
 

Neue Beiträge

Zurück