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 :

tri avec UNION


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Par défaut tri avec UNION
    bonjour, j'ai une requete dont je ne comprend pas le resultat

    tableX
    data
    ------
    A
    C
    E
    B
    D
    M
    Q

    tableY
    data
    -----
    F
    H
    J
    I

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    (SELECT data FROM tableX order by data asc)
    UNION
    (SELECT NULL as data)
    UNION
    (SELECT data FROM tableY order by data asc)
    j'ai m'attend au resultat suivant

    data
    ----
    A
    B
    C
    D
    E
    M
    Q
    NULL
    F
    H
    I
    J

    en fait j'ai

    data
    -----
    A
    C
    E
    B
    D
    M
    Q
    NULL
    F
    H
    J
    I




    pourquoi ?

  2. #2
    Membre émérite Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Par défaut
    tu confonds le null qui est l'absence de valeur et le "null" qui est une chaine de 4 caractères

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Par défaut
    Citation Envoyé par Mathusalem
    tu confonds le null qui est l'absence de valeur et le "null" qui est une chaine de 4 caractères
    j'ai corrigé ;-)

    mais le problème porte sur le tri,

    je voudrais

    resultat de requeteA trié
    NULL
    resultat de requeteB trié

    pourquoi les requetes requetes ne sont pas triées avant d'etre unies ?

  4. #4
    Membre émérite Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Par défaut
    essaye d'encastrer tes unions (sans order by) dans un select global qui a une clause order by


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select (
    select ... from t1
    union 
    ...
    union
    select ... from t2
     
    )
    order by 1

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Il est déjà étonnant que la clause ORDER BY soit autorisée dans une sous-requête

    Théoriquement, dans une requête UNION, il ne peut y avoir qu'une seule clause ORDER BY, à la fin, qui s'applique à l'intégralité du résultat de la requête.
    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.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Par défaut
    Citation Envoyé par al1_24
    Il est déjà étonnant que la clause ORDER BY soit autorisée dans une sous-requête

    Théoriquement, dans une requête UNION, il ne peut y avoir qu'une seule clause ORDER BY, à la fin, qui s'applique à l'intégralité du résultat de la requête.
    en effet, elle n'est pas interdite, mais elle est ignorée, j'en comprend que ce que je veus faire n'est pas possible

    merci


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

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/11/2004, 10h12
  2. Pb de tri avec champs vide
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2004, 17h42
  3. tri avec l'ordre UPDATE et incrementation d'une colonne
    Par Staron dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/02/2004, 08h48
  4. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  5. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40

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