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 :

ORDER BY sur une colonne contenant lettres et nombres


Sujet :

Oracle

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut ORDER BY sur une colonne contenant lettres et nombres
    Bonjour,

    je fais une requête sur une colonne VARCHAR2(12) qui contient des lettres et des chiffres. Je fais un order by sur cette colonne pour avoir un tri lexicographique seulement oracle me donne quelque chose à l'inverse de ce que j'attends.

    SELECT CODE FROM TABLE ORDER BY CODE

    Résultat :
    AA
    AB
    ZZ
    10
    11
    25

    et je voudrais :
    10
    11
    25
    AA
    AB
    ZZ

    est_ce possible à obtenir ?

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    et avec ORDER BY NLSSORT(CODE) ?
    ou
    ORDER BY NLSSORT(CODE, 'NLS_SORT=BINARY') ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 150
    Points : 121
    Points
    121
    Par défaut
    SheikYerbouti, n'est-ce pas possible de faire ça avec to_char(code) puisque le code binaire des chiffres sont plus petit?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    j'ai essayé les 2 méthodes, j'ai toujours le même résultat

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Quels sont vos National Language Settings ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par sroz
    j'ai essayé les 2 méthodes, j'ai toujours le même résultat
    C'est bizarre, cela aurait du fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> select * from test_tri order by a;
    A
    --
    AA
    AB
    11
    15
     
    SQL> select * from test_tri order by nlssort(a, 'NLS_SORT=binary');
    A
    --
    11
    15
    AA
    AB
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    oui effectivement la méthode ORDER BY NLSSORT(CODE, 'NLS_SORT=BINARY') fonctionne , j'ai bien ce que je veux

  8. #8
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Ravi que cela fonctionne, mais dans ce cas, il faudrait peut-être expliquer comment vous pouvez dire :
    j'ai essayé les 2 méthodes, j'ai toujours le même résultat
    et
    ui effectivement la méthode ORDER BY NLSSORT(CODE, 'NLS_SORT=BINARY') fonctionne
    !

    De même qu'il est demandé à quiquonque propose une solution de la tester avant, il est demandé à toute personne qui a un problème de tester les solutions proposées avant de répondre....


    M'enfin, l'essentiel, c'est que ce soit résolu ! :-)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    en fait j'avais testé la solution ORDER BY NLSSORT(CODE) et la solution to_char(code). ce sont ces 2 solutions là qui ne fonctionnent pas.

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

Discussions similaires

  1. Type d'une colonne contenant de grands nombres
    Par Louis-Guillaume Morand dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2008, 14h17
  2. Réponses: 2
    Dernier message: 13/07/2007, 12h20
  3. Réponses: 3
    Dernier message: 26/09/2006, 11h33
  4. Trigger sur une colonne ?
    Par hpalpha dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 14h16
  5. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 09h47

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