[Oracle] Problem z zapytaniem z rownum

0

Hej. Mam taka tabelke
ITEM: ID number, NAME varchar2
a w niej 5 wpisow, o ID od 1 do 5.

Wykonuje zapytanie:
select id, rownum from item
i dostaje wynik jak sie spodziewam: dwie kolumny z liczbami od 1 do 5.

Teraz zapytanie:
select id, rownum from item where rownum < 3, wynik: dwa wiersze, dla id=1 i id=2. Tak jak sie spodziewam.

Jednakze, zapytanie:
select id, rownum from item where rownum > 3 nie zwraca nic, nic a nic: "no rows selected".
O co moze chodzic? Czy cos (na pewno skoro nie dziala) robie zle? Wyglada tak jakby rownum nie mozna bylo uzywac z operatorem >, lub wrecz tylko z <, bo probowalem rownum = 3 i tez nic.
Pozdrawiam.

0

Ok, znalazlem, jesli ktos jest zainteresowany:
http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html

google jednak rzadzi ;-)
ogolnie to w sumie to chyba ten watek do kosza sie nadaje...

0

Bo widzisz, ROWNUM to jedno z większych brzydactw Oracle. W innych systemach baz danych jest TOP, LIMIT, OFFSET, a tutaj takie paskudztwo :) Na ogół można to obejść tak:

SELECT * FROM (
 SELECT a, b, ROWNUM r
 FROM t
 ORDER BY a
) WHERE r >3
0

Dzieki [soczek]

1 użytkowników online, w tym zalogowanych: 0, gości: 1