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

Langage SQL Discussion :

Position dans liste


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Position dans liste
    Bonjour,

    J'aimerai savoir s'il est possible de récupérer le numéro de la ligne courant dans le jeu d'enregistrement retournée par un SELECT.

    Un peu comme AbsolutePosition en VB pour une table Access.

    D'avance merci

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : août 2003
    Messages : 577
    Points : 652
    Points
    652
    Par défaut
    Bonjour, sans l'affirmer, je pense que ça dépend du SGBD.
    Sous oracle par exemple, ROWNUM te donne cette information.
    Pour les autres, je ne sais pas si ça existe.
    a+

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 897
    Points : 49 645
    Points
    49 645
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Il n'existe aucune notion d'ordre native dans une base de données.

    La position d'une ligne dans une table (la notion "d'enregistrement" n'existe pas en SQL) n'est ne peut en aucun cas servir au fonctionnel car cette position peut changer au cours de la vie de la base de données.
    Si vous voulez une notion d'ordre dans votre table, c'est à vous de l'implémentez en ajoutant les informations adéquate.
    Lisez larticle que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L5
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L6

    Quand à ROWNUM il ne sert bien évidemment pas du tout à cela ! ROWNUM est une fonction de fenêtrage qui sert à donner un repère numérique à une ligne d'un jeu de résultat et non à la table. C'est ainsi que deux requêtes successives sur la même table ne donneront pas forcément le même resultat si par exemple une ligne à entre temps été modifié, ajoutée ou supprimée, notamment pas un autre utilisateur.

    Enfin, ce n'est pas parce que Access fait des choses qui n'ont rien à voir avec les concepts de SGBDR et du SQL qu'il faut croire que tous les SGBDR font les mêmes absurdités. Je veut bien entendu parler du "AbsolutePosition" qui contrevient à toutes les règles nécessaires au bon fonctionnement des bases de données relationnelles.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 1 946
    Points : 2 209
    Points
    2 209
    Par défaut
    Citation Envoyé par SQLpro
    Il n'existe aucune notion d'ordre native dans une base de données.
    ...

    ROWNUM est une fonction de fenêtrage qui sert à donner un repère numérique à une ligne d'un jeu de résultat et non à la table.
    Je suis tout à fait d'accord, mais justement la question est :
    récupérer le numéro de la ligne courant dans le jeu d'enregistrement retournée par un SELECT
    Donc il me semble que nako répond bien à la question posée .
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

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

Discussions similaires

  1. Position dans une liste
    Par dominos dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/11/2013, 17h33
  2. Position dans une liste en HTA
    Par papyxy dans le forum VBScript
    Réponses: 2
    Dernier message: 20/10/2012, 13h16
  3. Réponses: 1
    Dernier message: 05/06/2009, 18h59
  4. Position dans une liste hétérogène
    Par mister2502 dans le forum Général Python
    Réponses: 17
    Dernier message: 24/04/2009, 14h10
  5. position dans une liste triée
    Par mdr_cedrick dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/11/2008, 15h33

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