Toon posts:

[oracle8] enkele of dubbele subselect bij ROWNUM?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil maar een bepaald gedeelte van het aantal rijen van het resultaat in een query in mijn beeld krijgen. Met MySQL gaat dit met LIMIT en bij Oracle moet je met ROWNUM in een subselect werken. Na wat zoekwerk vond ik deze link :
http://www.phpbuilder.com/annotate/message.php3?id=1001623

Mijn query zou er dan als volgt uit komen te zien:

code:
1
2
3
4
5
6
7
8
SELECT * FROM
(
  SELECT ROWNUM AS rn, code, dt_plts FROM
  (
    SELECT code, dt_plts FROM def2570 ORDER BY code
  )
)
WHERE rn < 11 AND rn > 2
Dat is dus met 2 subselects, maar volgens mij kan het ook met 1 subselect. Dan zou het er zo uit komen te zien:
code:
1
2
3
4
5
SELECT  * FROM
(
  SELECT ROWNUM AS rn, code, dt_plts FROM def2570 ORDER BY code
) 
where rn < 11 and rn > 2
Zit hier nog verschil tussen?
Er MOET trouwens een subselect zijn omdat je niet ROWNUM < x mag doen (ik denk omdat ROWNUM er op het laatst pas bijgezet wordt)

Ik heb een paar query's gedaan en daar kwam gewoon hetzelfde resultaat uit.

Er staat op die link die ik net gaf: "You'll need all three nested selects"
Alleen staat er niet waarom en ik vat niet echt waarom het zou moeten.
Ik liep eerst al te klooien ermee omdat Oracle 7.3.4 ORDER BY niet pakt in een subselect, maar 8.1.7 doet het wel :)

Alvast bedankt voor jullie hulp.