PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » [Order by] espaces et caractères spéciaux » 10/09/2010 12:05:48

est-ce que ceci fonctionnera ?
ORDER BY CASE WHEN col ilike ' %' or col ilike '[%' or col ilike '(%'
THEN NULL ELSE col END NULLS FIRST

#2 Re : Général » [Order by] espaces et caractères spéciaux » 10/09/2010 11:51:29

C'est vrai que c'est bourrin !!!
c'est bizarre qu'il n'y ait pas la possibilité de choisir un tri dans le postgresql.conf, ou au niveau des propriétés de la bd ou encore au niveau du order by...

il y a vraiment aucune autre solution ?

#3 Re : Général » [Order by] espaces et caractères spéciaux » 09/09/2010 20:30:41

Bin en fait, je trie des éléments par ordre alphabétique, mais j'aimerai placer un élément : 'Non désigné' en premier. Donc jusqu'à présent je l'écrivais avec un '[' ou un ' ' devant pour que le order by le place en 1er.

Tu as une idée pour contourner ce pb ?

#4 Re : Général » [Order by] espaces et caractères spéciaux » 09/09/2010 17:49:04

alors quelle locale dois je mettre pour que ca fonctionne :
- sur Windows ?
- sur linux - Fédora ?
- sur linux - débian ?
- sur linux - Suse ?

#5 Re : Général » [Order by] espaces et caractères spéciaux » 09/09/2010 17:41:58

C'est tres bizarre...

Chez toi :
createdb b1 --locale fr_FR.UTF-8
createdb b2 --locale C --template template0

le tri place l'espace en 1er dans la b2
et le tri ne gère pas l'espace dans la b1


sur mon poste de développement (sous vista), j'ai des tests, j'ai exactement le comportement inverse :


C:\Program Files\PostgreSQL\8.4\bin>psql -l -U postgres
                                               Liste des bases de donnÚes
            Nom             | PropriÚtaire | Encodage |        Tri         |Type caract.    |     Droits d'acc
----------------------------+-------------+----------+--------------------+--------------------+-----------------------
BD1               | postgres    | UTF8     | French_France.1252 | French_France.1252 |
BD2         | postgres    | UTF8     | C                  | C               |
.......



sur la BD1, le tri place l'élément : " [Non désigné]" en premier
et sur la BD2, le tri place cet élément au niveau du N

J'ai du mal à comprendre....

#6 Re : Général » [Order by] espaces et caractères spéciaux » 09/09/2010 15:55:41

Dans ce message :
"mauvais tri" signifie que l'espace n'est pas géré dans le tri
"bon tri" signifie que l'espace est géré en premier


sur la bd qui fait le mauvais tri, la locale est : "fr_FR.UT8-8" (distribitution suse et debian)

et sur celle qui a un comportement satisfaisant : "French_France.1252" (sur des distribution windows)
le tri fonctionne correctement sur des distributions debian et fédora, mais la je ne peux pas vérifier la locale qui est configurée dessus.

tu pense que le pb vient de la ?

#7 Général » [Order by] espaces et caractères spéciaux » 09/09/2010 15:36:55

aldo31
Réponses : 19

Bonjour,

Je viens de déployer mon logiciel sur une distribution de Suse.
L'order by a un comportement étrange pour les espaces et les caractères spéciaux.

Normalement " non désigné" devrait apparaitre en premier grace à l'espace, mais sur cette version, il est positionné au niveau du "n".

la meme requete ne propose pas le meme tri sur Suse que sur Débian ou Fédora, Windows, ...
pourtant la locale de postgresql est la meme...

Comment ca se fait ?

Pied de page des forums

Propulsé par FluxBB