TRI SQL sur des chaines de charcactères

TRI SQL sur des chaines de charcactères - SQL/NoSQL - Programmation

Marsh Posté le 28-07-2004 à 10:01:38    

salut à tous
 
je travail sous MySQL et php et j'ai un petit
 
soucis:
 
j'effectue cette requete:
 
select * from variété variété order by txtCode
 
 
le pb est le suivant:
le txtCode apparaisent de la façon suivantes:
 
USA1
USA2
USA3
USA30
USA31
USA32
USA4
 
on constate que 30,31,32 arrive avant 4
 
et la je suis bloqué
 
 
si quelqu'un avait une idée
 
merci bcp
 
 
 
 

Reply

Marsh Posté le 28-07-2004 à 10:01:38   

Reply

Marsh Posté le 28-07-2004 à 10:05:07    

Bah c'est normal il est où le probleme [:spamafote]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 28-07-2004 à 10:09:35    


Le pb c que je voudrais les ordonner dans l'ordre:
 
USA1,USA2,USA3,USA4,...,USA29,USA30,USA31...
 
voila
 
merci

Reply

Marsh Posté le 28-07-2004 à 10:11:49    

pretorienx a écrit :

Le pb c que je voudrais les ordonner dans l'ordre:
 
USA1,USA2,USA3,USA4,...,USA29,USA30,USA31...
 
voila
 
merci


 
ca ne correspond pas a un ordre "textuel"... Tu aurais du coder ce machin (me demande ce que c'est d'ailleurs :??:) USA01, USA02, USA03 etc .. en considerant que la partie nombre reste sur 2 chiffres...
 


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 28-07-2004 à 10:19:52    

j'ai essaye de faire un "cast (txtCode as int) cod " et de trier sur code mais txtCode n'est pas convertible en int
 

Reply

Marsh Posté le 28-07-2004 à 10:21:56    

pretorienx a écrit :

j'ai essaye de faire un "cast (txtCode as int) cod " et de trier sur code mais txtCode n'est pas convertible en int


 
Dans la mesure ou USA n'a pas d'equivalent numérique, c'est normal ...
Comme le dit Boulax, il faut que tes chaines USA1,USA2.. deviennent USA01, USA02

Reply

Marsh Posté le 28-07-2004 à 10:28:22    

alien_nan a écrit :

Dans la mesure ou USA n'a pas d'equivalent numérique, c'est normal ...
Comme le dit Boulax, il faut que tes chaines USA1,USA2.. deviennent USA01, USA02


 
Et meme c'est pas une solution, a USA101 il sera de nouveau emmerdé. Je m'interrogerai plutot sur l'utilité de ce champ ... [:columbo2]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 28-07-2004 à 22:55:30    

Si t'as tout le temps 3 caractères non numériques suivit d'une suite de caractères numériques, tu peux faire ça (syntaxe Oracle, je te laisse l'adapter)
 
Select *
From latable
Order By To_Number(substr(lechamp, 4))


Message édité par Arjuna le 28-07-2004 à 22:55:56
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed