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 :

ordre alphabétique caractères dans oracle


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Par défaut ordre alphabétique caractères dans oracle
    Bonjour,
    J'ai un petit souci ,
    je n'arrive pas à avoir l'ordre de tri que je veux.

    J'ai 2 libellé composé d'un libellé et d'un numéro entre parenthèse.

    exemple :

    "libellea (125454)"
    et "libelleb libellec (122313)"

    exemple :

    "voiture (125487)"
    et
    "voiture bleue (114856)"

    je veux que "voiture (125487)" apparaisse avant "voiture bleue (114856)"

    mais oracle me met voiture bleu avant quand je fait un order by.
    c'est surement que dans l'ordre alphabétique des caractéres la parenthèse vient aprés les lettres.
    or dans l'ordre ascii ce n'est pas le cas.
    je pourrais mettre un autre caractére(qui ne soit pas une lettre biensur) à la place des parenthèses mais lequel ???

    Merci de votre aide.

  2. #2
    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
    Faites un tri sur la partie du champ avant la parenthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY substr(<champ>, 1, instr(<champ>, '(')-1) ASC
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select champ
    from
    (
    select 'voiture (125487)' as champ from dual union all
    select 'voiture bleue (114856)' from dual
    )
    order by substr(champ, 1, instr(champ, '(')-2) asc
    -- j'ai mis -2 à cause de l'espace avant la parenthèse,
    -- mais je ne sais pas si c'est systématique dans vos données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CHAMP
    ***********************
    voiture (125487)
    voiture bleue (114856)

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Ça dépende aussi du paramètre nls_sort
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    mni@DIANA> SELECT champ
      2  FROM
      3  (
      4  SELECT 'voiture (125487)' AS champ FROM dual union ALL
      5  SELECT 'voiture bleue (114856)' FROM dual
      6  )
      7  ORDER BY 1 ASC
      8  ;
     
    CHAMP
    ----------------------
    voiture bleue (114856)
    voiture (125487)
     
    mni@DIANA> alter session set nls_sort=binary;
     
    Session modifiÚe.
     
    mni@DIANA> SELECT champ
      2  FROM
      3  (
      4  SELECT 'voiture (125487)' AS champ FROM dual union ALL
      5  SELECT 'voiture bleue (114856)' FROM dual
      6  )
      7  ORDER BY 1 ASC
      8  ;
     
    CHAMP
    ----------------------
    voiture (125487)
    voiture bleue (114856)

Discussions similaires

  1. [VBA-EXcel] classement des noeuds d'une treeview dans l'ordre alphabétique
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/01/2017, 19h02
  2. Réponses: 1
    Dernier message: 24/02/2014, 19h41
  3. Ordre alphabétique automatique dans une StringGrid
    Par breizh44 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/05/2009, 23h51
  4. [Ordre Alphabétique]Objets dans les classes !
    Par kinji dans le forum Designer
    Réponses: 6
    Dernier message: 12/12/2007, 18h30
  5. Ordre alphabétique dans une liste déroulante
    Par Z[ee]k dans le forum Access
    Réponses: 2
    Dernier message: 30/05/2006, 15h02

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