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 :

Ordre des critères du "in"


Sujet :

Langage SQL

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut Ordre des critères du "in"
    Bonjour,

    C'est bête mais je veux faire :
    select TBIDT from TB where TBIDT in (1, 3, 4, 2)

    au lieu de me renvoyer les résultats dans l'ordre 1, 3, 4, 2
    ça me fait l'ordre inverse!!!!! (2, 4, 3, 1).

    C'est quoi ce bins?

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 458
    Par défaut
    Bonjour,
    Je ne vois pas le lien entre l'ordre des valeurs dans le IN et l'ordre des lignes dans le résultat...

    Tatayo.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    C'est vrai, mais moi j'aimerais donner une liste de critères dans le in et travailler ensuite dans un certain ordre dans ma boucle PL/SQL.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 458
    Par défaut
    Dans ce cas il te faut une colonne calculée (par exemple avec decode, mais je ne sais pas si c'est du standard SQL ?) et trier le résultat sur cette colonne:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select TBIDT,decode(TBIDT,1,1,3,2,4,3,2,3) as ordre from TB where TBIDT in (1, 3, 4, 2) order by ordre

    Tatayo.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Merci, ça marche ce type de requête...mais ça paraît diablement tordu.
    Quelqu'un a plus simple ou c'est impossible de faire autrement?

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous pouvez implémenter une table de référence / vue pour mettre vos valeurs en regard de l'ordre attendu.

    Comme vous l'a expliqué tatayo, l'ordre d'un critère n'a strictement rien à voir avec l'ordre de sortie de vos données. Il y a un couac de conception quelque part.

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

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