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
Version imprimable
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
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
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
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 with tmp (a) as (select '10'::varchar union all select '5' union all select '3A' union all select '2C' union all select '2') select substring(a, '[0-9]*')::varchar::numeric, a from tmp order by substring(a, '[0-9]*')::varchar::numeric, a
Je viens de trouver une solution :
Merci encoreCode: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));
Sinon, ce que vous cherchez à faire, c'est un tri "naturel" ou "natural sort".Citation:
y dit qu'y voit pas l'rapport
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.