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 :

Requête bizarre ... Order by sur 2 champs


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut Requête bizarre ... Order by sur 2 champs
    Je cherche à trie les résultats d’une requête simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MotCleft1, MotClef2 
    FROM maTABLE
    Ce qui me donne 2 colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MotClef1     MotClef1
    ----------     ----------  
    Tertiaire      Foncier
    Industrie     Education

    Jusque là, rien d’anormal.
    Ce que je cherche à avoir à proprement parler, c’est obtenir ces résultats dans une seule colonne et le tout trié alphabétiquement …

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MotsClefs
    -----------
    Education
    Foncier 
    Industrie
    Tertiaire
    Auriez-vous quelques idées par hasard. J’aimerais "bien sûr" m’afranchire si possible de la création d’une table temporaire.

    En tous cas, merci d’avance pour les réponses.
    Matthieu

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 36
    Points : 39
    Points
    39
    Par défaut POSSIBLE de faire une UNION
    Tu px faire une union

    SELECT MotCleft1 as MotClefs FROM maTABLE
    Union
    SELECT MotCleft1 as MotClefs FROM maTABLE

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour;
    zpiboo a fait une faute de frappe et a oublié l'order by
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MotCleft1 as MotClefs FROM maTABLE
    Union
    SELECT MotCleft2 as MotClefs FROM maTABLE
    Order by MotClefs
    Mais là j'ai un doute pour l'order by et je suis à la maison, sans base de données pour faire le test.
    Si 'order by MotClefs' ne marche pas, tu peux essayer "order by 1"

    a+
    Soazig

  4. #4
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Points : 960
    Points
    960
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select MotClefs from
    (
    SELECT MotCleft1 as MotClefs FROM maTABLE
    Union
    SELECT MotCleft2 as MotClefs FROM maTABLE
    )
    Order by MotClefs
    et dans ce cas je ne vois pas poourquoi cela ne marcherait pas...
    Bon courage
    La SNCF est mon ami
    blog PARIS-GRANVILLE
    Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Merci de vos réponses.

    Ce qui fonctionne pour l'instant, c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Distinct MotCleft1 as MotClefs FROM VueSurWeb 
    Union 
    SELECT Distinct MotCleft2 as MotClefs FROM VueSurWeb
    J'ai rajouté la clause DISTINCT pour mon usage.

    "Bizarrement", c'est déjà trié. Je dis bizarrement, mais c'est peut-être une fonction automatique de la requête UNION ou de celle de SQL Server.

    La réponse de pinocchio ne fonctionne pas et je ne comprends d'ailleurs pas pourquoi. Mais comme la réponse de Zpiboo fonctionne, je ne vais peut-être pas chercher plus loin (pour le moment ).

    En tous cas, merci beaucoup de votre aide. C'est fou comme ce forum est réactif.

    Bonne journée.

    Matthieu

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par MatthieuQ
    La réponse de pinocchio ne fonctionne pas et je ne comprends d'ailleurs pas pourquoi.
    Peut-être êtes-vous sur Mysql auquel cas les sous-requête ne fonctionne pas... on connaitrait votre SGBD nos réponses seraient plus correctes

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Je suis sous SQL Server 2000. Je ne l'avais pas indiqué en début de message mais le précisais dans le message de 11:32. Désolé.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par MatthieuQ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Distinct MotCleft1 as MotClefs FROM VueSurWeb 
    Union 
    SELECT Distinct MotCleft2 as MotClefs FROM VueSurWeb
    J'ai rajouté la clause DISTINCT pour mon usage.
    : : : La clause UNION fait déja le boulot le DISTINCT n'est pas nécessaire

    Elle le serait uniquement sur des requetes unitaires

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour
    La réponse de pinocchio ne fonctionne pas et je ne comprends d'ailleurs pas pourquoi.
    Pour sqlserver il faut donner un alias à une sous requete et là ca fonctionne donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select MotClefs from 
    ( 
    SELECT MotCleft1 as MotClefs FROM maTABLE 
    Union 
    SELECT MotCleft2 as MotClefs FROM maTABLE 
    )  as T
    Order by MotClefs
    J'ai juste rajouté le "As T", mais c'est le genre de chose dont on cherche la réponse longtemps , quand on ne le sait pas.
    A+
    Soazig

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Nickel. ça fonctionne très bien.
    Merci à tous.

    Si j'ai bien compris, faut que je mette "résolu" maintenant ...

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

Discussions similaires

  1. ORDER BY sur les champs non nuls
    Par ant0inep dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/03/2008, 18h22
  2. Une requête avec un Max sur 2 champs
    Par Bils dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/09/2007, 14h04
  3. [MYSQL] Problème ORDER BY sur deux champs
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 14/10/2005, 16h46
  4. order by sur 2 champs?
    Par rdams dans le forum Requêtes
    Réponses: 7
    Dernier message: 23/09/2005, 16h30
  5. Faire un ORDER BY sur un champ
    Par Jeankiki dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/05/2004, 23h59

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