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

PostgreSQL Discussion :

Conserver l'ordre des enregistrements dans une requête


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut Conserver l'ordre des enregistrements dans une requête
    Bonjour,

    Je voulais savoir s'il est possible de conserver l'ordre d'affichage des données correspondant à l'ordre des enregistrements des données.

    Je m'explique j'ai une table avec les données suivantes (je mets le numéro d'enregistrement des données dans postgres) :

    numéro , id_A , id_B
    47 , 32 , 17
    48 , 32 , 19
    49 , 32 , 18
    50 , 32 , 3

    Quand je fais une requête simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_A ,id_B FROM f_location_fo.synoptique_liaison WHERE id_A =32
    le résultat est le suivant
    id_A , id_B
    32 , 19
    32 , 18
    32 , 17
    32 , 3

    Ma colonne id_B n'est plus dans le même ordre.

    Merci pour votre aide !

    sd

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    La clause ORDER BY est là pour ça.
    En son absence, le SGBD retourne les lignes dans un ordre plus ou moins aléatoire.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    merci pour cette réponse mais le problème du ORDER BY (si je le mets sur id_B) , il va me classer les valeurs de cette colonne et moi je veux conserver l'ordre d'enregistrement des données.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    En SQL, les lignes d'une table ne sont pas ordonnées !
    Si tu veux connaître l'ordre dans lequel les lignes ont été ajoutées dans une table, il faut qu'il soit formalisé d'une manière quelconque (heure de création, compteur...) dans les colonnes de la table, valeur sur laquelle tu pourras t'appuyer pour faire un ORDER BY.
    Sans cette information, tu n'as aucune assurance que ton SGBD retourne les lignes dans le même ordre à chaque interrogation.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    ok, je pensais que c'était possible dans ce cas je vais ajouter une colonne permettant de gérer l'ordre.

    Merci !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT id_A ,id_B
        FROM f_location_fo.synoptique_liaison
       WHERE id_A = 32
    ORDER BY numéro ASC;

Discussions similaires

  1. Ordre des filres dans une requête
    Par rgomes dans le forum DB2
    Réponses: 1
    Dernier message: 30/08/2011, 14h34
  2. [AC-2007] Comptage des enregistrements dans une requête
    Par le_sayan dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/07/2010, 07h20
  3. [AC-2003] Ordre des tris dans une requête ?
    Par lil404 dans le forum IHM
    Réponses: 2
    Dernier message: 19/05/2009, 10h51
  4. Réponses: 8
    Dernier message: 23/03/2007, 01h14
  5. Exclure des enregistrements dans une requête
    Par r@phy dans le forum Access
    Réponses: 3
    Dernier message: 29/03/2006, 11h18

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