Bonjour a tous,

Je me lance nouvellement sur orcale et j'ai une confusion au niveau du rownum.

Je comprend bien le principe de l'interet du between, ect.

Mais partout ou j'ai cherché (ce forum, les tutoriaux, google), je constate que le rownum marche soit directement quand <= x et avec un beween quand on ne désire pas les premiers enregistrements.

Pourtant j'ai eu l'occassion de tester une requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT   DISTINCT IDCMDE
FROM     COMMANDE
WHERE    IDCLIENT = '0429005'
         AND ROWNUM <= 200
ORDER BY IDCMDE ASC
==> 21 résultats

et celle ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT *
FROM   (SELECT A.*,
               ROWNUM AS RNUM
        FROM   (SELECT   DISTINCT IDCMDE
                FROM     COMMANDE
                WHERE    IDCLIENT = '0429005'
                ORDER BY IDCMDE ASC) A
        WHERE  ROWNUM <= 200)
WHERE  RNUM >= 0
==> 24 résultats

Quelqu'un peut-il m'expliquer pourquoi ?
Est ce uniquement à cause du order by

Merci d'avance a qui voudra bien aider cette pauvre ame en perdition

Indentation des requêtes effectuée par :http://www.wangz.net/cgi-bin/pp/gsql.../sqlformat.tpl