|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 140 ![]() |
bonjour,
10,5,3A,2C,2 et je voudrais avoir ceci : 2,2C,3A,5,10 pouvez-vous m'aider. J'ai essayé LPAD CAST mais je n'y arrive pas. Merci |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 2 161 ![]() |
Bonjour,
Un SGBD n'est pas forcément ce qu'il y a de mieux pour trier des occurrences dans une seule et même ligne. (c'est même le bordel complet ..) Voyez ça côté applicatif |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 140 ![]() |
Merci pour votre réponse.
Mais ce n'est pas en une seule ligne. Je représente autrement 10 5 3A 2C 2 et je voudrais avoir ceci : 2 2C 3A 5 10 |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 2 161 ![]() |
Je ne retrouve pas le poste où on avait déjà traité ce problème, si vous avez le temps de chercher dans ce forum ....
l'idée est de passer par des expressions régulières afin de sortir la partie numérique de votre chaîne de caractère. http://www.postgresql.org/docs/9.1/s...-matching.html Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 140 ![]() |
Je viens de trouver une solution :
Code :
ORDER BY c.acpadrzip,UPPER(c.acpadrcity),UPPER(c.acpaddress),CASE WHEN (TRIM(acpadrnum)>='00000' AND TRIM(acpadrnum)<='99999') THEN TO_NUMBER(acpadrnum,'99999') ELSE 0 END,TRIM(UPPER(acpadrnum)),TRIM(UPPER(acpadrbox)); |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 517 ![]() |
Citation:
Aucun SGBD à ma connaissance n'implémente ce système de tri. Et ce n'est pas au SGBD de faire ce genre de tri, qui est purement esthétique. Vous avez trouvé la solution en faisant un tri par d'autres informations que le libellé initial, et c'est effectivement la bonne solution. |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com