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

SQL Oracle Discussion :

[Oracle 10g] Tri par préférence ?!


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut [Oracle 10g] Tri par préférence ?!
    Bonjour à tous,

    j'ai une requête qui me ramène en dernière colonne les éléments suivants : ACT, ACC, DEM, CL et IN.

    Seulement je souhaite récupérer mon résultat trié non pas par ordre alphabétique, mais selon mes préférences.

    Ce que je souhaite :
    NOM | PRENOM | CODE | VAL
    DUC | OLIVER | 1234 | ACT
    DUC | OLIVER | 1235 | ACT
    DUC | OLIVER | 1236 | ACT
    DUC | OLIVER | 1230 | ACC
    DUC | OLIVER | 1239 | ACC
    DUC | OLIVER | 1231 | ACC
    DUC | OLIVER | 1439 | ACC
    DUC | OLIVER | 1289 | DEM
    DUC | OLIVER | 2239 | DEM
    DUC | OLIVER | 8239 | DEM
    DUC | OLIVER | 1039 | CL
    DUC | OLIVER | 1299 | CL
    DUC | OLIVER | 1279 | CL
    DUC | OLIVER | 1939 | CL
    DUC | OLIVER | 7289 | IN
    DUC | OLIVER | 0239 | IN
    Comme vous pouvez le constater je souhaite que la dernière colonne soit trier, mais dans l'ordre indiqué au départ et non pas selon l'ordre alphabétique.

    Est-ce possible ?

    J'ai rien trouvé sur le forum, ni dans la doc papier que j'ai ... en même temps je connais pas le nom de ce que je recherche !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    qu'est ce que tu entends par ordre de départ?
    genre ACT, DEM, ACC, CL et IN ?

    si c'est le cas, je creerais une table d'ordre contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TABLE_ORDRE
    ORDRE VALEUR
    1 ACT
    2 DEM
    3 ACC 
    4 CL
    5 IN
    puis tu trie ton résultat comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from TA_TABLE, TABLE_ORDRE
    where TA_TABLE.VAL = TABLE_ORDRE.VALEUR
    ordre by TABLE_ORDRE.ORDRE
    ca répond à ta question?

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    C'est pas clair, c'est quoi ton ordre de départ ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par McM Voir le message
    C'est pas clair, c'est quoi ton ordre de départ ?
    Dans ma table le champ "VAL" possède les valeurs ACT, DEM, ACC, CL ou IN. Cette valeur est attribuée à un NOM, un PRENOM et un CODE.

    Toutefois, le résultat de ma requête doit pouvoir être utilisé tel quel. Le besoin est que les éléments du champ "VAL" soit trié dans l'ordre suivant : ACT, DEM, ACC, CL et enfin IN.

    Je crois que pdelorme a bien répondu à ma question, mais ça m'oblie à créer une table temporaire ... ce qui va pas plaire au DBA !

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT nom, 
               prenom, 
               code , 
               val, 
               DECODE(val,'ACT',1,'DEM',2,'ACC',3,'CL',4,'IN',5,99) ordre
    FROM latable
    ORDER BY ordre

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Ah bah c'est sûr que si c'est orafrance qui répond là j'suis bien obligé de mettre à !

    Merci à tous et surtout à orafrance !


    Allez hop grâce à vous je rentre chez moi tout de suite !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/09/2009, 12h38
  2. Problème tri oracle 10g
    Par Julien59 dans le forum SQL
    Réponses: 3
    Dernier message: 13/06/2008, 09h28
  3. syntaxe valeur par defaut sous oracle 10g
    Par uptoditime dans le forum Oracle
    Réponses: 4
    Dernier message: 28/09/2007, 14h22
  4. Réponses: 2
    Dernier message: 13/04/2006, 16h09
  5. Réponses: 1
    Dernier message: 29/03/2006, 11h33

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