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 avec un tri spécial


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 48
    Points
    48
    Par défaut Requête avec un tri spécial
    Bonjour a tous,

    Voila j'ai une table avec des noms et des codes postaux. Je voudrais faire une requête qui me sorte dans l'ordre :
    - Les lignes avec un code postal = 75002
    - Les lignes avec un code postal qui commence par 75
    - et enfin, pour les lignes qui restent, trier par ordre alphabétique sur les noms.

    est ce que cela est possible ?

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonjour,

    C'est certainement possible avec UNION et une colonne artificielle, comme ceci:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT nom, cp
    FROM (
      SELECT nom, cp, 1 AS trie FROM ville WHERE cp = '75002'
      UNION ALL
      SELECT nom, cp, 2 AS trie FROM ville WHERE cp LIKE '75%' AND cp <> '75002'
      UNION ALL
      SELECT nom, cp, 3 AS trie FROM ville WHERE cp NOT LIKE '75%'
    ) AS td
    ORDER BY trie, nom
    A tester.

  3. #3
    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
    L'idée est bonne mais la mise en pratique moins, il suffit de forcer le tri sur un case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      SELECT nom, cp
        FROM MaTable
    ORDER BY case
               when cp = '75002'  then 1
               when cp like '75%' then 2
               else 3
             end asc,
             nom asc

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    En effet, vu comme ça..


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 48
    Points
    48
    Par défaut
    Merci a vous deux. la solution de Waldar fonctionne je ne savait pas qu'on pouvait mettre un case dans un order by ^^

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

Discussions similaires

  1. requête avec un tri unique n°2
    Par Ohemeg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/06/2009, 01h22
  2. Requête avec un tri unique
    Par Ohemeg dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2009, 20h21
  3. Réponses: 4
    Dernier message: 10/04/2007, 11h10
  4. Requête récalcitrante avec un tri par COUNT sans GROUP BY
    Par Ancalagon77 dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/10/2006, 14h27
  5. Requête avec résultat trié
    Par guenfood dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/09/2006, 14h53

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