IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Utilisation du ROWNUM pour récupérer une ligne


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Par défaut Utilisation du ROWNUM pour récupérer une ligne
    Bonjour,

    je cherche à récupérer une ligne dans une table en utilisant rownum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select *  from ma_table 
    where rownum =60;
    le résultat est toujours null, pourtant la ligne 60 existe dans ma table. Et c'est pareil pour toutes les autres lignes sauf la ligne 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select *  from ma_table 
    where rownum =1;
    là, la requête renvoie la ligne.

    sachant que j'utilise oracle 11g et que je travaille sur sqldevelopper 1.5.5, quelqu'un pourrait-il m'expliquer comment utilser rownum et pourquoi ça marche seulement pour la ligne 1.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from ( SELECT rownum rn, t.*  FROM ma_table t ) 
    WHERE rn =60;
    Maintenant je ne vois pas bien l'intérêt

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    commence à envoyer les données. C’est seulement à ce moment là que le rownum est attribue. Donc le premier enregistrement prend le rownum = 1 mais votre condition rownum = 60 fait que cette enregistrement ne passe pas le filtre. Par la suite c’est le deuxième enregistrement et pour celle ci aussi le rownum est 1 ce qui ne satisfait non plus le filtre rownum = 60. Après c’est le troisième enregistrement, etc. jusqu’au épuisement des données.
    Pour répondre à votre demande vous avez besoin d’bord de numéroter les enregistrements et les filtrer par la suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Select ename
      From (
            Select rownum rn, e.*
              From scott.emp e
              order by empno 
           )  
     Where rn = 3  
    /

  4. #4
    Membre éclairé Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Par défaut
    merci tout les deux ça marche.

    cdt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Sprintf / utilisation des espaces pour remplir une ligne
    Par exilquery dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2012, 17h46
  2. Réponses: 0
    Dernier message: 08/01/2009, 15h33
  3. [MVC] récupérer une ligne d'une base de donnée pour modification
    Par myriam818 dans le forum Spring Web
    Réponses: 1
    Dernier message: 14/12/2007, 10h46
  4. Réponses: 1
    Dernier message: 07/06/2006, 18h56
  5. Réponses: 1
    Dernier message: 17/05/2006, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo