Oracle : n premières lignes

Résolu
Tibo-K3 Messages postés 21 Statut Membre -  
Tibo-K3 Messages postés 21 Statut Membre -
Bonjour à tous,

Je travaille sous Oracle 11g et pour faire des tests de perf, j'aimerai faire une requête mais sur les N premiers champs d'une table.

Actuellement, je connais la clause WHERE ROWNUM <= 10000 mais cette clause limite le nombre de lignes retournées à 10000, et non pas d'appliquer la requête sur les 10000 premiers champs de la requête.

Alors, ça se trouve ma demande n'a aucun sens car "n premiers champs" d'une base ne veut peut être rien dire, car ce n'est pas ordonné. Mais je tiens à préciser que l'ordre et les champs sélectionnés n'ont que peu d'importance, le résultat m'importe peu, je suis juste interessé par le temps de réponse.

Merci par avance

3 réponses

  1. francis
     
    Sur mysql, il y a le mot clé LIMIT (select * from pouet limit 10; -> retour des 10 premiers enregistrements) mais je sais pas si il existe sous oracle...
    0
  2. Tibo-K3 Messages postés 21 Statut Membre 3
     
    Oui, mais comme marqué dans mon sujet, ce n'est pas ce qui m'intresse. Je ne veux pas retourner les 10 premiers enregistrements, je veux qu'il REQUÊTE sur les 10 premiers champs !

    Si j'ai la table

    NOM  PRENOM
    AAA     Michel
    BBB    Bernard
    CCC   Thierry
    DDD    Paul
    AAA    Marie
    BBB    Anne
    AAA   Marie-Chantale
    BBB    Clara


    Je veux un SELECT * FROM TABLE WHERE NOM = 'AAA' AND "sur les 2 premiers champs" qui revient à faire SELECT * FROM TABLE WHERE NOM = 'AAA' juste sur la partie de la table :

    NOM    PRENOM
    AAA     Michel
    BBB    Bernard


    et donc retourner seulement

    AAA     Michel


    Alors que ROWLIMIT (Oracle) ou LIMIT (MYSQL) retournera

    AAA     Michel
    AAA    Marie
    0
  3. Tibo-K3 Messages postés 21 Statut Membre 3
     
    J'ai trouvé la réponse (enfin grâce à un de mes collègues). C'était ROWNUM, mais utilisé indirectement :

    select 'COLONNES' from (select * from 'TABLE' where ROWNUM <= 1000) where'CONDITION' 
    0