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 :

ORDER BY complexe


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut ORDER BY complexe
    Bonjour,

    Je voudrais ordonner ma requete selon plusieurs attributs.
    Je vais prendre un exemple. Imaginons une table "bidon" avec 4 attributs, A, B, C, D qui sont des booléens ('O', 'N')

    Je voudrais classer une requete du type "SELECT A,B,C,D FROM bidon" en mettant en premier, les resultats où A = 'O', ensuite où C='N' puis où B='O' et D='O'. Et je souhaite classer les résultats identiques en fct de leur id par exemple.

    C'est réalisable ?
    Merci beaucoup

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    Il faut utiliser un case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT A,B,C,D FROM bidon order by case when A = 'O' then 4
    when C='N' then 3 when B='O' then 2 when D='O' then 1 else 0 end desc,id asc

  3. #3
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    hello,

    et un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A,B,C,D 
    FROM bidon 
    order by A, C DESC, B, D
    ca ne donne pas ce que tu cherche?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Merci! Je vais essayer vos deux solutions !
    J'aime bien la méthode de Spoutnik afin d'utiliser l'ordre des lettres.
    Et je connaissais pas les cases, ça me semble bien aussi.

    En tout cas merci à vous deux. Je testerai ça bientot.

Discussions similaires

  1. [MySQL-5.0] ORDER BY complexe
    Par patk777 dans le forum Requêtes
    Réponses: 16
    Dernier message: 27/06/2014, 09h05
  2. SQL, ORDER BY assez complexe
    Par FtF Nemesis dans le forum VBA Access
    Réponses: 8
    Dernier message: 24/05/2011, 15h33
  3. order by assez complexe (pour moi en tout cas :) )
    Par eldrad95 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/12/2009, 11h03
  4. Réponses: 7
    Dernier message: 07/04/2003, 09h35
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 13h29

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