Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Thu 17 June 2021 09:00

tevrard
Participant assidu
Date d'inscription: 23 May 2016
Messages: 320

Comportement étrange order by

Bonjour,

je suis surpris du retour de la requete suivante :

Code:

SELECT intitule_formation
FROM listes_fonctionnelles.ref_formation_diplome
ORDER BY intitule_formation

qui appelle une colonne de texte et dont une partie du résultat est le suivant :

Code:

"BTSA Génie des équipements agricoles (GDEA)"
"BTSA Gestion et maîtrise de l'eau"
"BTSA Gestion et maîtrise de l'eau (GEMEAU)"
"BTSA Gestion et protection de la nature (GPN)"
"BTSA Gestion forestière"
"BTS Aménagement finition"
"BTSA Productions animales"
"BTS Architectures en métal : conception et réalisation"
"BTSA Sciences et technologies des aliments (STA) Aliments et processus technologiques"
"BTSA Sciences et technologies des aliments (STA) Produits laitiers"
"BTS Assistance technique d'ingénieur (ATI)"
"BTS Assurance"
"BTSA Technico-commercial"
"BTSA Technico-commercial option animaux d'élevage et de compagnie"

Comme vous pouvez le constater le tri n'est pas bon, BTSA et BTS A étant confondu. Je remarque aussi le même problème sur BPA et BP A. L'espace ne semble donc pas être reconnu.

Avez vous des explications sur le pourquoi de cette confusion?

Merci d'avance pour vos retours

Dernière modification par tevrard (Thu 17 June 2021 09:00)

Hors ligne

 

#2 Thu 17 June 2021 09:36

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1549

Re: Comportement étrange order by

Bonjour,

Ca peut etre un classement normal (cf: https://stackoverflow.com/questions/345 … resql-9-4)

Quelle est votre version de PG ? quel est le type de la colonne ?

La doc: https://www.postgresql.org/docs/14/collation.html

Nicolas

Hors ligne

 

#3 Thu 17 June 2021 10:31

tevrard
Participant assidu
Date d'inscription: 23 May 2016
Messages: 320

Re: Comportement étrange order by

Bonjour et merci Monsieur Ribot,

La version de Pg est une 9.1. la colonne est une colonne en character varying encodée en UTF-8

Hors ligne

 

#4 Sun 20 June 2021 20:58

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1149

Re: Comportement étrange order by

Salut,

réponse ici : https://stackoverflow.com/questions/345 … gresql-9-4

La collation de votre colonne intitule_formation doit être UNICODE, et l'ordre des chaines UNICODE n'est pas exactement l'ordre lexicographique.

Donc vous pouvez spécifier la collaction C dans votre requête :

Code:

SELECT intitule_formation
FROM listes_fonctionnelles.ref_formation_diplome
ORDER BY intitule_formation collate "C"
;

ou changer la collation par défaut de votre colonne :

Code:

alter table 
  listes_fonctionnelles.ref_formation_diplome 
  alter intitule_formation 
   type text 
   collate "C";

ou changer la collation par défaut de votre base de données,mais je pense que ca implique de recréer votre base de données.

Dernière modification par tumasgiu (Sun 20 June 2021 20:58)

Hors ligne

 

Pied de page des forums

Powered by FluxBB