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

Oracle Discussion :

Discordance entre ORDER BY et BETWEEN


Sujet :

Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Discordance entre ORDER BY et BETWEEN
    Bonjour,

    j'ai deux combobox qui m'affiche les enregistrements d'une table trié par ordre croissant selon une colonne de type varchar32.

    ces deux combobox correspondent à une borne min et max de la colonne trié dans le but de faire une selection sur mes enregistrements.
    Ce qui se traduit par la requete sql suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where Macol between combox1.text and combox1.text
    Or le problème c'est que le ORDER BY trie selon un ordre alphanumerique alors que le between compare par code ASCII.
    Ainsi, dans certains cas ma requete ne renvoi rien. Par exemple si mes bornes min et max sont AA et A1 l'ORDER BY tri le AA avant le A1 alors que le Between trouve le A1 < au AA.
    la solution serait de positioner le parametre NLS_SORT à BINARY mais je veux que le ORDER BY se fasse toujours sur un tri alphanumerique.

    y a t'il un parametre qui permet de modifier le mode de comparaison du between ?
    Y a t'il peut être une autre facon de faire mon select ?

    Cordialement,
    MAZBOUL 2000

    Balises code ajoutées par Orafrance, merci d'y penser à l'avenir

  2. #2
    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
    NLS_COMP = NLS_SORT ?

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Ok merci bien pour cette réponse claire, concise et rapide !!!
    je ne connaissais pas le parametre NLS_COMP.
    En le positionnant à 'ANSI' (par défaut il est égal à 'BINARY') le between compare ainsi par ordre alphanumerique

  4. #4
    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
    Et bien voila un mystère résolu

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

Discussions similaires

  1. Problème entre order by et Union
    Par pmboutteau dans le forum SQL
    Réponses: 2
    Dernier message: 09/07/2013, 14h49
  2. Réponses: 5
    Dernier message: 09/07/2007, 11h57
  3. Réponses: 1
    Dernier message: 05/10/2006, 04h20
  4. [Sybase] order by différent entre 2 servers
    Par MashiMaro dans le forum Sybase
    Réponses: 9
    Dernier message: 15/07/2004, 11h01

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