Bonjour,

Je voudrais savoir comment retourner les x premières lignes dans une requête.

Sur le forum, j'ai vu que l'on conseille le champ caché ROWNUM et qu'il faut ajouter une clause WHERE du genre WHERE<=x, mais je ne suis pas d'accord...

En effet, si ma requête comporte un ORDER BY, alors Oracle va me retourner les mêmes lignes que la requête sans ORDER BY !

D'ailleurs on voit bien le problème avec ces requêtes :

SELECT ROWNUM FROM DEV.TBTEST a;

1
2
3
4
5
...
SELECT ROWNUM FROM DEV.TBTEST a ORDER BY a.FREQUENTATION;

12
3
18
7
5
...
Comment faire donc ?

Merci d'avance pour vos suggestions.

Autre point :
J'ai essayé avec un hint Oracle mais ça ne marche pas :

SELECT /*+ FIRST_ROWS(10) */ * FROM DEV.TBTEST;
Ca me retourne quand même toutes les lignes...
En fait, ça doit agir seulement sur la façon qu'Oracle défini le plan d'exécution...